Atención: luego de leer este post, por favor lee este otro
Bueno, aquí dejo un tuto de cómo usar JPCalendar.
No hay mucho que explicar sobre qué es JPCalendar, ya que su nombre sugiere bastante, es un componente calendario para java/swing.
Lo primero que debes hacer para utilizar el calendario es bajarte la librería jpcomponents desde aquí, daré una explicación basándome en que estás familiarizado con swing y que utilizas Netbeans para el desarrollo. Si no es así con gusto daré las explicaciones que necesites.
Bueno, comencemos:
Primeros pasos:
1. Lo primero que debemos hacer es crear una nueva aplicación java, y luego agregar jpcomponents a las librerías del proyecto.
2. Agregamos un nuevo JFrame a nuestra aplicación.
3. Agregaremos el calendario a nuestra barra de componentes para que sea más fácil agregarlo a nuestros formularios desde el editor de netbeans, para ello hacemos click con el botón secundario del mouse sobre la barra de componentes, damos click en palette manager y seleccionamos add from jar, vamos a la dirección donde está el jar de jpcomponents y seleccionamos jpcalendar de la lista que nos muestra el netbeans. Con eso ya debemos tener el calendario en la barra de componentes.
4. Arrastramos el componente jpcalendar sobre el jframe y listo, ya tenemos nuestro calendario funcionando.
Puedes hacer click con el botón secundario sobre el formulario y seleccionar run file, y podrás ver el calendario en funcionamiento.
Propiedades de JPCalendar
El calendario tiene unas cuantas propiedades que se pueden setear para personalizarlo, como los colores de fuente, de fondo, etc, aún no están todas funcionales, porque por trabajo he tenido que postergar algunas.
Aquí una lista de las propiedades implementadas, todas son accesibles mediante getters y setters:
- currentDate: esta propiedad establece u obtiene la fecha actual del calendario
- dayColor: color de fuente de los días
- daySelectedBackground: color de fondo del día seleccionado en el calendario
- daySelectedColor: color de fuente del día seleccionado en el calendario
- offsetDayColor: color de fuente de los días que no son del mes actual
- rowBackgroundOdd: color de fondo para las filas impares del calendario
- rowBackgroundPair: color de fondo para las filas pares del calendario
- sundayBackground (aún no implementado): será el color de fondo de las celdas correspondientes al día domingo
- sundayColor (aún no implementado): será el color de fuente de las celdas correspondientes al día domingo.
- todayBackground: color de fondo del día actual
- todayColor: color de fuente del día actual
Eventos de JPCalendar
JPCalendar tiene un evento que es lanzado cuando cambia la fecha seleccionada, llamado onDateChanged(Calendar date), para escuchar este evento debe agregarse un com.jpcomponents.events.IJPCalendarDateListener a la instancia de calendario que quiere escucharse, de la siguiente manera:
Supongamos que tenemos una instancia de JPCalendar llamada jpcal, entonces, para escuchar el evento hacemos lo siguiente:
jpcal.addDateChangeListener(new IJPCalendarDateListener() {
public void onDateChanged(Calendar calendar) {
//hacer algo con la fecha
}
});
Capturas de Pantalla
JPCalendar sobre un JPBackgroundPanel |
Bueno, esto es todo por ahora, si tienes dudas, no dudes en ponerte en contacto conmigo.
Descargar JPComonents desde Google Code
Atención: luego de leer este post, por favor lee este otro
hola que tal, quisiera importar este calendario en EasyEclipse java.
ResponderEliminarmi correo es ernesto-223@softwarelibre-ec.org
De antemano gracias por su ayuda.
Hola ernesto, no entiendo bien tu consulta, si lo que quieres es añadirlo a un proyecto de EasyEclipse, lo único que debes hacer es importar el jar de JPComponents a tu proyecto y luego instancias el calendario como explico en el post.
ResponderEliminarCualquier consulta a las órdenes.
quisiera agregarl el calendario en la paletta
ResponderEliminarNo he usado hasta ahora el diseñador de eclipse, lamento decirte que no sabría cómo ayudarte... hasta ahora sólo he usado eclipse sin diseñador de guis...
ResponderEliminarQuizás buscando en google...
De todas formas para mañana me descarto el visual editor e investigo cómo agregar el componente...
Saludos
Hola Pablo que tal gracias de todos modo.
ResponderEliminarno te preocupes. Yo también voy a investigar.
ya agregué el jar a mi proyecto, pero no he podido visualizar en pantalla el calendario mediante el jframe.
Acabo de descargarme el jar agrege los componentes a la paleta del netbeans :D me encanto el calendario enserio que me servira muchisimo... Gracias!!
ResponderEliminarMe alegro patricio! saludos
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEs verdad ya probe con netbeans, agrege el calendario en la paleta y si que funciona muy bien.
ResponderEliminarEn ECLIPSE no he encontrado la manera de agregar el calendario en la paleta, pero bueno escribí el código para instanciar el calendario “jPCalendar1 = new com.jpcomponents.JPCalendar()”, aparentemente todo está bien no se reconoce ningún error, pero al ejecutar el programa se produce un error en el momento de la instanciación.
Revise los paquetes del jar importado y pude notar que el paquete com.jpcomponents no presenta los archivos class que tienen el signo $ (como por ejemplo JPCalendar$1.class, JPCalendar$2, ect). Luego revise en Netbeans y aquí si se reconocen los archivo.class que tiene el signo $. Nose si será ese el problema.
¿Alguien me podría ayudar?
Gracias de antemano.
Hola Pablo, buenas tardes.
ResponderEliminarInserte su JPCalendar en un frame que tengo de una aplicacion y ejecuta bien, pero no he podido con el metodo que implementa el Listener.
Lo he probado inclusive haciendo una clase inner dentro mi Frame y siempre me dice que como la clase no es abstracta debe sobrescribie el metodo onDateChanged.
Lo he puesto de mil formas y no he podido, me ayuda por fa!, ,
Richard
Pablo, en la descripcion que hace, tiene un error.
ResponderEliminares:
public void onDateChanged(JPCalendarEvent jpce)
Saludos.
Richard
Hola zoociedad actual, efectivamente, en el post hay una alerta al principio y otra al final para leer otro post, en el post siguiente se muestran algunos cambios que hice a jpcalendar:
ResponderEliminarhttp://pablojramirez.blogspot.com/2011/01/cambios-en-jpcalendar.html
Cualquier cosa avisame.
Saludos
Hola, eh visto tu calendario y funciona perfecto, lo único seria si se puede cambiar el color de fondo de donde se encuentran los nombres de los dias, mi aplicacion es medio opaca, y ese azu lresalta mucho. buen Programa, se agradece.
ResponderEliminarHola, soy nuevo en Netbeans, como puedo ejecutar el Calendar desde el
ResponderEliminarpublic class MyApplet extends javax.swing.JApplet
{
@Override
public void paint(Graphics g)
{
g.drawString("Calendario!", 50, 25);
}
jPCalendar1.????? Como hago para mostrarlo?
}
Gracias
Hola Raimundo, tienes que instanciar el JPCalendar y luego agregarlo a un JPanel o alguno similar con variableJPanel.add(variableJPCalendar)
ResponderEliminarSaludos
como hago para q jpcaledar me muestre seleccionada algunas fechas en los mese anteriores
ResponderEliminarHola Hector, debes usar el setter setSelectedDates y pasarle las fechas seleccionadas....
ResponderEliminarHola que tal disculpa tengo una duda estoy manejando un sistema en netbeans y mysql en el cual hay fechas de consultas en los cuales debo relacionar el calendario a una tabla con el fin de que funcione como una agenda al dar clic a un día muestre si hay consultas ese día pero no logro entender como relacionar la fecha del calen con la tabla
ResponderEliminarDebes usar el evento para atacharte al cambio en la selección de la fecha, luego cargar los datos de la base de datos, algo así
ResponderEliminarjpcal.addDateChangeListener(new IJPCalendarDateListener() {
public void onDateChanged(JPCalendarEvent evt) {
if(evt.getType()==JPCalendarEventType.SELECT){
Calendar fecha= evt.getCalendar();
//cargar los datos de las consultas
}
}
});
Disculpa, tengo una duda, espero y me la puedas despejar, lo que quiero hacer es un calendario de eventos, es decir, cuando yo introduzca el nombre de un evento y la fecha del mismo, me lo muestre en el calendario, por ejemplo: Evento: Reunión de Trabajo, Fecha: 16/03/2015 y que esa fecha se resalte en el calendario. De antemano, muchas gracias, espero tu pronta respuesta.
ResponderEliminarHola he utilizado el JCalendar y funciona bien el problema es que tengo varios campos y quiero hacer una busqueda, entonces aunque no utilices el JCalendar, pero saques los datos, traera los datos del dia actual, pero no quiero que los saque, como puedo hacerlo?? es decir, sabes si el usuario selecciono fecha o no?? es que en mi programa abra ocaciones en que no lo utilizara y quisiera que quedara en null o algo asi... gracias espero alguien me pueda ayudar
ResponderEliminarHola, el calendar tiene una propiedad canNull que indica que la fecha puede ser null, por lo que no te traerá la fecha actual.
ResponderEliminarRevisa este post: http://pablojramirez.blogspot.com.uy/2011/01/cambios-en-jpcalendar.html
Saludos,
Buenos dias disculpen alguien me podria ayudar con este problema?, cuando voy a agregar el componente JCalendar en la paleta no me salen los botones añadir de archivo de jar, alguien sabe porque y como arreglarlo
ResponderEliminarMuy bueno el calendario! pero al probarlo me encontré que el mes de marzo dos veces en lugar de febrero. Saludos!
ResponderEliminarEstimado Elio, hace años que ya no estoy dando mantenimiento a esto, fue un experimento, pero como me fue difícil encontrar colaboradores, lo abandoné, máxime teniendo en cuenta que swing ya está un poco "pasado de moda"...
ResponderEliminarhola como obtengo la fecha seleccionada por el usuario..
ResponderEliminar