Código Java – Agregar un Componente JCalendar al Proyecto

Este es el Ejemplo #17 del Topic: Programación Gráfica en Java.

En el post anterior hablamos sobre los CheckBoxList, ahora tocaremos otro componente también importante y muy usado que es el Calendar. He encontrado muchos componentes de este tipo pero la mayoría de ellos de pago y otros gratuitos pero sin buen diseño. Al final pude encontrar algo en SourceForge y seguramente podría servirnos mucho; es un JCalendar en dos presentaciones, un frame del calendar como tal y la otra modalidad incrustada en un combo.

Descargar: JCalendar.jar

Luego de descargar el JCalendar.jar vamos a importarlo al proyecto. Para que sea más accesible en el futuro podemos agregar el componente al panel de Beans de la IDE en el cual estamos trabajando y de esa manera solo tendremos que arrastrarlo al contenedor cada vez que tengamos que usarlo.

En el siguiente ejemplo agrego ambas presentaciones del JCalendar a JFrame:

/**
* jcalendar.jar
 */

package beastieux.gui;

import java.awt.FlowLayout;
import javax.swing.JFrame;
import org.freixas.jcalendar.JCalendar;
import org.freixas.jcalendar.JCalendarCombo;

/**
 *
 * @author beastieux
 */
public class Ejm17_JCalendar extends JFrame {
    public Ejm17_JCalendar()
    {
      JCalendar calEjemplo1=new  JCalendar();
      JCalendarCombo calEjemplo2=new  JCalendarCombo();

  this.add(calEjemplo1);
  this.add(calEjemplo2);
  this.setLayout(new FlowLayout());
  this.setSize(400, 300);

  setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
}

public static void main(String args[]) {
    Ejm17_JCalendar obj = new Ejm17_JCalendar();
    obj.setVisible(true);
}
}

Pueder ir al artículo principal:

Códigos Sencillos hechos en Java

19 thoughts on “Código Java – Agregar un Componente JCalendar al Proyecto

  1. por que me sale error me pudría ayudar por favor- SimpleDateFormat sdf3= new SimpleDateFormat(«dd/MM/yyyy
    hh:mm.ss a»);»
    + «»

  2. Buenas como hago para cambiar las dimensiones del calEjemplo2 q pusiste?xq neceisto ubicarlo en cierto lado de la pantalla y con dimensiones distintas y que muestre la fecha como dd/mm/aaaa me podes ayudar???

  3. Have you ever considered about including a little bit more
    than just your articles? I mean, what you say is important and everything.
    However just imagine if you added some great graphics or videos
    to give your posts more, «pop»! Your content is excellent but with
    images and video clips, this website could undeniably be one of the best
    in its niche. Great blog!

  4. TENGO UN FRAME CON UN BOTON Y UN TEXTFIELD AL DAR CLICK EN EL BOTON ME APARECE EL JCALENDAR, PERO AL DAR CLICK EN CUALQUIER FECHA NO ME LA TRASLADA AL TEXTFIELD, COMO SI NO TUVIERA LISTENER… COMO LE HAGO O Q MODIFICO? 🙁

  5. Como Puedo Obtener la fecha que selecciono para ponerla en un JTextField. El action listener que pone en el ejemplo la escribe a una linea de comandos pero no encuentro la forma de incluirle un método a la clase que me retorne el valor de la fecha seleccionada.

    1. Hola Ryan, suponiendo que declaro un JCalendar cal_fnacimiento y un JTextField txt_fnacimiento:
      protected JCalendarCombo cal_fnacimiento;
      protected JTextField txt_fnacimiento;

      Setear un JCalendar

      this.cal_fnacimiento.setDate("FECHA_EN_FORMATO_DATE");
      this.cal_fnacimiento.repaint();
      

      De JCalendar a JTextField:

          private void cal_fnacimientoDateChanged(org.freixas.jcalendar.DateEvent evt) {
                         this.txt_fnacimiento.setText(this.cal_fnacimiento.getDate().toString());
          }
      

      Ahi tienes las dos funciones principales, para lo que quieres hacer, busca en el control JCalendar que creaste el evento DateChanged, dentro de ello setear el jtextfield como en el segundo ejemplo.

      Espero que te sirva, me comentas como va!!
      Saludos.

Deja un comentario