JDateChooser en Java, un selector de fechas para Java

Java

JDateChooser en Java: En esta ocasión veremos el uso de JDateChooser contenido en la librería JCalendar 1.4, un selector de fechas muy útil para JAVA, estos componentes tienen infinidad de funciones dependiendo de lo que deseemos realizar, por ahora estudiaremos las funcionalidades básicas y mas importantes como: obtener una fecha seleccionada, como setearle una fecha al JDateChooser y como devolver el foco en tiempo de ejecución, son factores que serán de gran ayuda cuando se está trabajando con bases de datos o aplicaciones mas complejas veamos:

jdatechooser en java

JDateChooser en Java, un selector de fechas para Java

Clase funciones, utilizada en el vídeo tutorial:

public class Funciones {
 SimpleDateFormat Formato = new SimpleDateFormat("dd-MM-yyyy");
 public String getFecha(JDateChooser jd){
 if (jd.getDate()!=null){
 return Formato.format(jd.getDate());
 }else{
 return null;
 }
 }

public java.util.Date StringADate(String fecha){
 SimpleDateFormat formato_del_Texto = new SimpleDateFormat("dd-MM-yyyy");
 Date fechaE=null;
 try {
 fechaE = formato_del_Texto.parse(fecha);
 return fechaE;
 } catch (ParseException ex) {
 return null;
 }
 }

Descarga de la Librería Aquí

Si este post fue de ayuda para ti, no olvides dejar un comentario, también puedes contar tu experiencia o lo que estés haciendo. Nos ayuda a seguir creciendo. ¡Vamos!, solo te llevará 1 minuto.

7 comentarios

  1. Isaí Contestar

    Hola, excelente video me ha sido de gran ayuda, pero tengo una duda, espero y me la puedas resolver, quiero hacer lo siguiente:
    Lo que quiero hacer es almacenar una fecha importante, por ejemplo Cumpleaños de mi hermano y luego la fecha 12/05/2015 y que ese acontecimiento me lo muestre en un JCalendar, como tipo agenda, que marcas una fecha importante en el calendario, algo asi masomenos, no sé si me explique, espero tu pronta respuesta, muchas gracias y sigue así con los videos, mucho éxito.

    • Ivan David Lopez Autor de la entradaContestar

      Hola amigo, de antemano muchas gracias por el comentario constructivo, con respecto a tu solicitud puedes realizar tal acción utilizando otro componente mucho mas acorde con lo que necesitas (DateChooserPanel), aquí una imágen:
      DateChooserPanel
      Mediante este método puedes obtener tus fechas:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      public String Fecha_DateChooserPanel(DateChooserPanel calendario){
         String a = Integer.toString(calendario.getCurrent().get(java.util.Calendar.YEAR));
         String m = Integer.toString(calendario.getCurrent().get(java.util.Calendar.MONTH)+1);
         String d = Integer.toString(calendario.getCurrent().get(java.util.Calendar.DATE));
         String mes;
         int mm = Integer.parseInt(m);
         if(mm < = 9){
          mes = "0"+m;  
         }else{
         mes = d;
         }
         String fech = a+"-"+mes+"-"+d;  
         return fech;
      }

      Aquí te dejo la librería: DateChooserPanel

      También hay otro calendario muy interesante de la librería JPComponents, no estaría mal que lo estudiaras:
      JPComponents
      Aquí la Librería: JPComponets
      Cualquier inconveniente nos cuentas, saludos!.

  2. Sebastian Calderon Contestar

    segun el ejemplo de actualizar ,tengo un busqueda de datos me muestra los datos en las cajas de texto pero como puedo hacer para que me muestra la fecha actual en jdatechooser desde mysql ?

    • idlh Contestar

      Hola amigo, puedes proceder de la siguiente manera para realizar esa acción:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      private void Fecha(){
       try {
                  Date d=null;
                  Clases.BDConectar BD = new Clases.BDConectar();
                  BD.ConectarBasedeDatos();
                  BD.resultado = BD.sentencia.executeQuery("SELECT NOW() AS 'fecha';");
                  while(BD.resultado.next()){
                      if(BD.resultado!=null){
                         d = Funciones.convierteStringADate(BD.resultado.getString("fecha"));
                      }
                  }
                   jDateChooser1.setDate(d);
              } catch (SQLException ex) {
                  Logger.getLogger(Agendas.class.getName()).log(Level.SEVERE, null, ex);
              }

      }

      Con ese método asignas la fecha a tu JdateChooser desde una consulta, que en mi ejemplo es la que arroja el servidor con SELECT NOW(); a continuación los métodos que intervienen:

      Para convertir de String a Date:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      public Date convierteStringADate(String stringFecha){
      try{
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
          Date fecha = sdf.parse(stringFecha);
          return fecha;
          }catch(Exception e){
          JOptionPane.showMessageDialog(null, e);
          return null;
          }
      }

      y la clase de conexión a la base de datos que sé que ya la tienes implementada, solo queda ajustarla a tus necesidades.
      Hasta pronto!.

      • Sebastian Calderon Contestar

        Muchas Gracias Estimado
        El jun. 3, 2015 3:22 PM, “Disqus” escribió:

  3. Carlos Flores Contestar

    Que tal…
    Tengo una duda para poder guardar una fecha de nacimiento con el jdatachooser en una BD
    como podría ser el código del botón guardar donde se haría el insert into???
    gracias.

  4. babiloneo Contestar

    hola, este tengo un problema espero y me puedas ayudar, implemente tu código en mi programa y al momento de setear u obtener la fecha, me obtiene un año menos al que selecciones y un mes mas al que selecciones, osea si elijo la fecha 2015/11/23 “yyyy,mm,dd” me manda esto al setear u obtener la fecha 2014/12/23, espero su respuesta gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *