Java - JCALENDAR

   
Vista:

JCALENDAR

Publicado por Felipe cortés (1 intervención) el 21/01/2009 14:52:42
Hola a todos, necesito que alguien me guie siempre y cuando sea posible claro, estoy creando un programa de fichajes, o sea registros de entradas y salidas de empleados, utilizo la libreria jcalendar pero mi interés es pintar de colores los dias del més que ha fichado o incluso introducir una imagen , no se como hacerlo , veo que puedo modificar los blackgrounds de la imagen, peró no de los dias en concreto alguien sabe como hacerlo, gracias de antemano, por cierto utilizo neetbeans.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:JCALENDAR

Publicado por ideasjava (83 intervenciones) el 22/01/2009 01:57:59
Hola. En el caso de JCalendar puedes agregar lo que quieras al codigo fuente que viene. En JCalendar se van agregando los botones correspondientes a los dias en un array. En mi caso lo que hice fue lo siguiente:

Seguramente hay muchas formas de hacer esta modificacion y puede haber mejores respuestas pero en mi caso lo que necesitaba era pintar los dias del calendario de diferentes colores por lo que separe en varios vectores los dias con colores similares luego hice las siguientes modificaciones en el codigo:

Dentro del codigo fuente encontraras entre otras clases, una clase llamada JDayChooser y otra llamada JCalendar.

En JDayChooser agregué el siguiente metodo:

/**
* _vecDias: vector que contiene que dias se pintarán
* _color: color del boton

public void setColorDay(Vector _vecDias,Color _color){
boolean encontro = false;
int posi = 7, j = 0;
while((!encontro)){
if(!days[posi].getText().equals("")){
encontro = true;
posi--;
}
else{
posi++;
}
}
int k =0;
for(int i=0;i<days.length;i++){
if((_vecDias.size()>0)&&(k<_vecDias.size())){
j = Integer.parseInt(_vecDias.elementAt(k).toString());
if(i == (posi+j)){
days[posi+j].setBackground(_color);
k++;
//System.out.println("ingreso");
}
else{
days[i].setBackground(Color.lightGray);
}
}
else{
days[i].setBackground(Color.lightGray);
}
}
}

Este metodo pinta de dos colores: _color: por ejemplo naranja y uno por defecto que en este caso es gris.

Luego en la clase JCalendar agregué el siguiente metodo:

public void pintarDias(){
this.dayChooser.pintarDias();
}

Este metodo es el que se llamará desde tu codigo para ordenar el pintado de los dias del color que desees.

Bueno en mi caso lo que puse es otro metodo mas en la clase JDayChooser para que consulte a la base de datos y pueda retornar el vector de dias y el color a pintar, seria mas o menos asi:

public void pintarDias(){
//AQUI OBTENDRIA EL VECTOR DE DIAS A PINTAR Y EL COLOR
//Luego llamo al metodo setColorDay para que pinte los botones

setColorDay(VECTOR_OBTENIDO_DE_CONSULTA,COLOR);

}

Eso seria todo, espero que te ayude en tu problema, cualquier duda pregunta.

http://ideasjava.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JCALENDAR

Publicado por javaavaj (2 intervenciones) el 24/09/2012 03:32:44
Hole que tal ya se que paso años de esta respuesta pero me gustaria que me explicaran un poco, Tengo dos campos en mi BD fecha_inicial y fecha_final como hago para que en un JCalendar me aparescan de color esos dias entre fecha_inicia y fecha_final.
Gracias.
Saludos.
Si me pueden facilitar un ejemplo se los agradesco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JCALENDAR

Publicado por andres narvaez (1 intervención) el 25/09/2013 15:26:11
hola te agradezco tu aporte pero mira que yo soy nuevo en esto y la calse JDayChhooser esta protejida no deja escribir nada en ella en ese caso que hago
y otra como hago para pitar de colores los botones de cada dia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar