Uso básico de elementos Swing con NetBeans – 16 – Uso básico de JFormattedTextField, campos para fechas y horas.

Manejo de JFormattedTextField en Java

El elemento JFormattedTextField es de mucha utilidad para especificar formatos para fechas, horas, monedas, formatos personalizados y muchos más. Es en esta guía veremos cómo utilizarla para establecer formatos personalizados para las fechas y horas.
Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJFormattedTextField). Para el diseño utilizamos cuatro campos tipo JFormattedTextField, dos de los campos nos permitirán ingresar texto, las cuales serán fecha y hora respectivamente, las otras dos solo mostrarán la fecha y hora del sistema, que obtendremos utilizando el objeto Calendar. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)
Utilizaremos un único método que se ejecutará al lanzar el JFrame, este método implementa todos los códigos que necesitaremos para hacer funcionar nuestro pequeño programa.
Código Java
private void inicio() throws ParseException{
//El método debe incluir ParseException.
fechaEt.setEnabled(true);
//Forma en que se indica el formato del JFormattedTextField. Para fecha.
fechaEt.setFormatterFactory(new DefaultFormatterFactory(new MaskFormatter("##/##/####")));
horaEn.setEnabled(true);
//Forma en que se indica el formato del JFormattedTextField. Para hora.
horaEn.setFormatterFactory(new DefaultFormatterFactory(new MaskFormatter("##:##:##")));

//Los campos de salida estarán deshabilitados
fechaSd.setEnabled(false);
hora.setEnabled(false);
fechaSd.setFormatterFactory(new DefaultFormatterFactory(new MaskFormatter("##/##/####")));

//Forma de recuperar la fecha del sistema y darle un formato.
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar cal = Calendar.getInstance();
String fch = sdf.format(cal.getTime());
fechaSd.setText(fch);

//Forma de recuperar la hora del sistema y darle un formato.
hora.setFormatterFactory(new DefaultFormatterFactory(new MaskFormatter("##:##:##")));
SimpleDateFormat sdff = new SimpleDateFormat("HH:mm:ss");
String hr = sdff.format(cal.getTime());
hora.setText(hr);
}
En la imagen siguiente vemos las importaciones que necesitamos, nuestro paquete si la utilizamos y el método que llámanos desde el constructor. También se muestran en la imagen puntos a tener en cuenta ya que es necesario para que funcione la aplicación.

Lista de Importaciones.

Código Java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.logging.Level;//Importaciones necesarias
import java.util.logging.Logger;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.MaskFormatter;
Llegado a esta parte podremos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida)

No hay comentarios :

Publicar un comentario