Sé que ésto no es nada sofisticado ni moderno pero quizá a más de uno le sea de utilidad como a mi.

Cuando están haciendo algún programa principalmente utilidades propias o simplicidades similares, si son algo quisiqullosos con los detalles como yo querrán de vez en cuando tener campos enmascarados o formateados. En mi caso principalmente los de fecha y hora.

Sin más, un ejemplo simple y directo pero práctico (cuando el campo ya está creado y queremos asignarle la máscara):


import javax.swing.text.*;
import javax.swing.*;

..

fmtFecha = new MaskFormatter("##/##/##");
fmtFecha.setPlaceholderCharacter('_');
DefaultFormatterFactory fechaFactory = new DefaultFormatterFactory(fmtFecha);
JFormattedTextField fechaTextField = new JFormattedTextField();
fechaTextField .setFormatterFactory(fechaFactory);

El código anterior nos dejará el campo “fechaTextField” formateado y sólo recibirá números en los espacios marcados con # asímismo mantendrá las líneas diagonales separando la fecha, mes y día y rellenará los espacios vacíos con guión bajo “_”.

o sí crearemos el campo al mismo tiempo que le damos el formato es un poco más simple:


import javax.swing.text.*;
import javax.swing.*;

..
fmtFecha     = new MaskFormatter("##/##/##");
fmtFecha.setPlaceholderCharacter('_');

JFormattedTextField fechaTextField = new JFormattedTextField(fmtFecha);

Nuevamente espero no ser muy ambiguo…