Para tutorías y/o asesorías virtuales sobre JAVA SE y/o MySQL, escríbeme al formulario de contacto.


BUSCA MÁS CONTENIDO AQUÍ:



JAVA-Tips: ¿Cómo emplear campos de fecha en tus formularios?




Al momento de diligenciar toda la información pertinente a un determinado formulario de nuestro software, por parte del o los usuarios del mismo, un paso que cobra muchísima importancia es el manejo y/o asignación de fechas (fecha de nacimiento, fecha de registro, etc...), por lo cual se hace necesario el uso de un componente que facilite el manejo de este tipo de datos.

Imagen del capítulo 18 de JAVA-Tips ¿Cómo emplear campos de fecha en tus formularios?

Para lograr el resultado deseado, deberemos hacer uso de la librería JCalendar, la cual nos brindará varias opciones a la hora de necesitar la utilización de fechas en nuestros proyectos Java.

Al igual que en otros capítulos de JAVA-Tips, realizaremos los siguientes pasos, utilizando NetBeans IDE (si aún no lo tienes puedes dirigirte a nuestra Zona de descargas, y dar clic en el icono "NetBeans IDE"):

1-Procederemos a descargar el archivo JCalendar-1.4.jar.zip y seguidamente lo descomprimimos.
Un consejo muy práctico que te quiero dar, es que te puedas crear en tu disco local "D", una carpeta a la cual si lo deseas llamarás "Librerias JAVA" (o el nombre que tu decidas); luego, copiarás el archivo "jcalendar-1.4.jar" (que descomprimimos anteriormente) y lo pegarás en la carpeta que creaste, tal cual como te lo recomendé.
 
2-Nos dirigiremos a nuestra Interfaz de Desarrollo Integrado "NetBeans", y abriremos en vista de diseño, el formulario de nuestro proyecto donde queremos agregar un campo para la fecha:
 
Abriendo formulario JAVA

3-Ubicaremos el puntero del mouse, sobre el nombre de alguna de las categorías de la "Paleta de componentes" que por lo general se encuentra en la parte derecha de nuestra pantalla. En este caso, nos situaremos sobre el nombre de la categoría "Swing Containers" (Contenedores Swing) y daremos clic derecho sobre la misma; luego, podremos observar un menú contextual, en el cual escogeremos la opción "Administrador de paleta...":
 
Seleccionando la opción "Administrador de paleta..."

4-Se nos abrirá la ventana "Administrador de Paleta", allí daremos clic sobre el botón "Nueva categoría...":

Clic en el botón "Nueva categoría..."

5-Proseguiremos a asignarle un nombre a nuestra categoría, en este caso la llamaremos "Campos de fecha", y daremos clic en el botón "Aceptar":
 
Creando categoría "Campos de fecha"

6-Una vez creada nuestra categoría, pulsaremos el botón "Add from JAR...":

Clic en el botón "Add from JAR..."

7-Ahora, localizaremos y seleccionaremos el archivo jcalendar-1.4.jar el cual descargamos anteriormente (paso 1) y que me imagino que lo habrás guardado en la carpeta "Librerias JAVA" ;)
Damos clic en el botón "Siguiente":

Clic en el botón "Siguiente"

8-En la siguiente ventana, verificaremos que esté seleccionada la opción "Show Marked JavaBeans"; luego seleccionaremos toda la lista de componentes que se nos muestran en pantalla y damos clic en el botón "Siguiente":

Clic en el botón "Siguiente"

9-El paso que viene a continuación, consiste en seleccionar la categoría que creamos previamente (pasos 4 y 5); es decir, "Campos de fecha", y luego dar clic en el botón "Terminar":

Seleccionando la categoría "Campos de fecha"

10-Nos quedará el administrador de paleta abierto, por lo cual procederemos a dar clic en el botón "Cerrar".
Si nos fijamos bien en la "Paleta de componentes", podremos observar que en la categoría que acabamos de crear, contamos con nuevos elementos que nos permitirán trabajar con datos de fecha en nuestros formularios, entre ellos encontramos:

Elementos de la categoría "Campos de fecha"

JCalendar: Este nos permitirá contar con un elemento en forma de calendario y usarlo en nuestro proyecto JAVA. Este componente ocupa un mayor espacio en los formularios debido a su tamaño.
 
JDateChooser: Sin duda alguna, este es el componente más utilizado, ya que consiste en un pequeño campo, desde el cual podemos desplegar un calendario y así seleccionar una determinada fecha, la cual quedará consignada y/o establecida en el mismo elemento.
 
JDayChooser, JMonthChooser y JYearChooser: Nos permitirán consultar y seleccionar el día, el mes y el año respectivamente. Hay que tener en cuenta que estos son elementos independientes, y una vez ejecutemos nuestro proyecto, en cada uno de ellos se reflejará su información actualizada de forma automática; es decir, si agregamos un JMonthChooser a nuestro formulario, se nos mostrará por defecto el mes actual.
 
Otros componentes que encontraremos serán: El JLocaleChooser, que es una especie de Combo Box para escoger una configuración regional o idioma; y el JSpinField, que hace las veces de un campo numérico al cual se le puede establecer los valores límites que puede alcanzar; es decir, un valor máximo (usando su método ".setMaximum()") y uno mínimo (usando su método ".setMinimum()").
11-Para emplear y/o hacer uso de estos nuevos elementos, sólo bastará con seleccionar y arrastrar hacia nuestro formulario, el que deseamos implementar, en esta ocasión será un JDateChooser:

Arrastrando el componente JDateChooser hacia nuestro formulario

12-Al ejecutar nuestro proyecto podremos ver este nuevo elemento en acción, permitiéndonos brindarle una opción más a los usuarios del programa que estamos desarrollando, para que el diligenciamiento de los formularios sea aún más completo:

Seleccionando una fecha en el componente JDateChooser
 JDateChooser con fecha asignada


El misterio de la carpeta "Librerias JAVA" 


Bueno... en realidad no es un misterio la creación de esta carpeta; pero sí, algo muy necesario, y que debemos hacer por precaución, pues cuando realizamos el proceso de agregar bibliotecas a nuestros proyectos JAVA o lo que acabamos de realizar que fue agregar nuevos elementos a la "Paleta de componentes" a partir de un archivo .jar, se toma como referencia la ruta de dicho archivo (.jar), por lo cual, si movemos y/o eliminamos el fichero de su lugar, se nos presentará un error y tendremos problemas en el funcionamiento de nuestro proyecto; en otras palabras, el JDateChooser que agregamos desaparecerá tanto de nuestro formulario como de la "Paleta de componentes".
Es por eso, que debemos tomar la buena costumbre de tener todas las librerías en un sólo lugar, en el cual se encuentren siempre disponibles y/o accesibles para su uso ;)

Si te perdiste el artículo anterior de JAVA-Tips, no dejes de revisarlo, ya que aprenderás algo nuevo e importante como: "Modificar ancho de columnas y alto de filas de una tabla".

Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: Facebook, Twitter, YouTube y Google+.
Te invitamos a seguir el Curso de JAVA: Cómo lo hago en JAVA?, aquí en UH T.I.S tu Blog de tecnología.


Si te fue de gran ayuda esta información, no olvides compartirla con tus amigos.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...








Comparte este artículo

votar

Sobre El Autor

Eduardo Bastidas UH

Cristiano y Colombiano. Analista de Sistemas & Blogger.
Me motiva mucho el poder compartir día tras día lo que he aprendido y voy aprendiendo en el área de las Tecnologías de la Información y las Comunicaciones.

21 comentarios:

  1. que tal Eduardo me gustaria preguntarte como ingreso fechas con el jdatechooser a una base de datos ya que al ingresar la fecha me la inserta pero con la fecha actual no con la fecha seleccionada.
    utilizo esto
    PreparedStatement pst=con.prepareStatement(sql);

    pst.setDate(11, new java.sql.Date(date.getTime()));

    y esta parte que esta comentariada buscando una solucion pero me sigue generarando para mi el error de insertar una fecha actual y lo que quiero es la fecha seleccionada en jdatechooser.

    //java.util.Date date = new java.util.Date();
    //java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd");
    //jDateChooser1.setDate(date);
    //jDateChooser3.setDate(date);
    //String fna = sdf.format(date);
    //String fin=sdf.format(date);


    Muchisimas Gracias.....

    ResponderEliminar
    Respuestas
    1. Saludos Estimado Roberto.

      Que bueno verlo por este post :)

      Bueno primero deberás realizar de forma correcta la captura de la fecha seleccionada en tu JDateChooser, para ello:

      //Creas una variable tipo String

      String fechastring=null;

      /*Creas una variable del tipo Date y allí almacenas la fecha que hay en tu JDateChooser*/

      Date fechajd=jDateChooser.getDate();

      /*Creas un objeto del tipo SimpleDateFormat, para crear un formato y aplicarlo a tu fecha; luego, guardas la fecha formateada en la variable String*/

      SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
      fechastring=sdf.format(fechajd);

      Ahora dirígete a tu método donde guardas la información a la Base de datos:

      /*Utiliza el método .setString no tendrás problema, ya que pasarás como parámetro la variable String (fechastring)*/

      pst.setString(11, fechastring);

      Realiza los pasos que te recomiendo, haz las pruebas y me comentas.

      Bendiciones...

      Eliminar
  2. Solo quiero que Dios te guarde y te regale infinitas bendiciones gracias hermano......

    ResponderEliminar
    Respuestas
    1. Amén mi hermano, Dios lo bendiga grandemente a usted y su familia.
      Recuerde que aquí en UH T.I.S estamos para colaborarnos entre todos :)

      Eliminar
  3. Eduardo se puede limpiar del campo del jdatechooser con un boton la fecha utilizada la pregunta es por que limpio mi formulario pero las fechas me quedan inmersas que se linea de codigo se usa para limpiarlas y dejar mi formulario en blanco Gracias.......

    ResponderEliminar
    Respuestas
    1. Sólo coloca la siguiente línea de código en el botón limpiar de tu formulario:

      jDateChooser.setDate(null);

      Eliminar
  4. hola buenas noches necesito su ayuda urgente necesito poner los datos de un jdatechooser y de un spinner en un jtable, para un trabajo e buscado pero no encuentro nada, yo se que usted me puede ayudar.
    gracias y Dios le bendiga :)

    ResponderEliminar
    Respuestas
    1. Saludos estimado visitante, en el siguiente artículo podrás ver la forma de agregar datos desde los campos de tu formulario a una tabla (JTable):

      Código JAVA: Agregar datos de un formulario a una tabla (JTable), y eliminar una fila y/o registro de una tabla (JTable)

      Cualquier inquietud, déjame tu comentario.

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar
  5. Buen día gracias por la información se aprecia mucho, pero tengo una consulta cuando corro el proyecto en otro ordenador me da error porque no encuentra la librería Date pero si creo un ejecutable tendría este mismo problema gracias por su atención.

    ResponderEliminar
    Respuestas
    1. Saludo estimado.
      El error te sale por la ruta del archivo, deberás entonces volver a cargar el archivo "jcalendar-1.4.jar" tal como lo indica el punto 7 de este artículo.
      Una vez tu creas tu ejecutable (.jar) para que no vayas a tener ningún inconveniente, debes tener presente llevarte junto al .jar, la carpeta "lib", que es donde se agrupan todas las librerías que necesitará tu aplicación.

      Cualquier duda me comentas.

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar
  6. Hola DIOS te bendiga... varón.. me llamo Yurmario... Saludos.

    Oye estoy presentando un inconveniente con el manejo de fechas en netbeans, por ejemplo ya he guardado mis fechas en la base de datos, pero ahora necesito obtener la diferencia en días entre dos fechas, la fecha actual - la fecha de recibido(la que cargué a la base de datos). Ahora bien, cuando intento obtener la fecha actual con la línea de código siguiente: Date fechaHoy= new Date(); <<<----esta línea de cog--- me da error me podrías ayudar a resolver este problema???? necesito descargar una librería en especial???? Por otro lado cómo hay notificaciones por ejemplo: que si una orden de servicio no está lista pasados 7 días me notifique y me muestre una tabla con los equipos que no han sdo reparados en el tiempo establecido(días)..!! bueno espero tu respuesta gracias de antemano DIOS te continue bendiciendo..!!!!

    ResponderEliminar
    Respuestas
    1. Perdón la segunda pregunta es cómo hago notificaciones...?

      Eliminar
    2. Tampoco me acepta esta la importar esto import java.util.Date; me da error no se porque he visto tutoriales y les funciona pero a mi no me importa la libreria :/

      Eliminar
    3. Saludo estimado.

      Es un poco raro que tengas inconvenientes a la hora de hacer uso del import java.util.Date;
      Lo que te puedo sugerir es que actualices el JDK y si estás usando una versión muy antigua de NetBeans trata de actualizarlo también, mínimo a la 7.4; luego, reinicia tu computadora y prueba nuevamente.

      Cualquier duda me comentas.

      Bendiciones...

      Eliminar
  7. Una duda??.. Se puede ingresar fechas siguientes automatiamente??
    Osea que por ejemplo,, yo pongo la fecha de ingreso,, pero quiero que automaticamente,, ya se ponga la de la semana siguiente

    FEcha de ingreso: 10/08/2016 FEcha a los 7 dias: 17/10/2016(pero que esto se ponga automaticamente),, si me podrias ayudar

    ResponderEliminar
  8. Hola, una consulta, cómo hago para que me aparezca la fecha en el mismo campo del DateChooser al seleccionar una fila de una tabla?

    ResponderEliminar
    Respuestas
    1. Saludos estimada Dayana Ortiz.

      1. Para pasar datos de un JTable a los campos de un formulario, deberás seguir los pasos que encontrarás en el siguiente post:

      Código JAVA: Seleccionar registro de un JTable y mostrarlo en los campos de un formulario

      2. Antes de mostrar tu fecha (capturada desde el JTable) deberás convertirla y aplicarle el formato que tiene asignado tu JDateChooser, ej:

      /*Creas un objeto del tipo SimpleDateFormat, para crear un formato y aplicarlo a tu fecha; luego, muestras la fecha en el JDatechooser*/

      SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
      JDateChooser.setDate(sdf.parse(fechadeljtable));

      Cualquier duda me comentas.

      ¡CRISTO TE AMA!
      ¡ÁBRELE LAS PUERTAS DE TU CORAZÓN!

      Bendiciones...

      Eliminar
  9. en el caso de querer guardar solo el año es decir utilizando el JYearChooser

    ResponderEliminar
  10. Que tal amigo, me marca error cuando declaro la variable
    Date fechajd=jDateChooser.getDate();

    Ayudame porfavor

    ResponderEliminar
    Respuestas
    1. Saludos estimado José Caceres, lo más probable es que no estés importando la Clase Date, por lo cual deberás colocar en la parte de los import, la siguiente línea de código:
      import java.util.Date;

      Otro punto no menos importante, es que tu jDateChooser debe llamarse así "jDateChooser".

      Tu IDE debe mostrar una especie de icono en forma de bombillo en la línea que te marca error, coloca el mouse sobre dicho bombillo y te saldrá un mensaje especificándote el porqué del error.

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar

RECIBIR NOTICIAS POR EMAIL


Suscríbete al boletín para recibir lo último en tu correo electrónico

¿NECESITAS AYUDA PARA PROGRAMAR EN JAVA SE Y MYSQL?