Java - JTable con filas distintas

   
Vista:

JTable con filas distintas

Publicado por Diego (7 intervenciones) el 22/01/2008 20:53:24
Buenas a todos!! Mi duda es la siguiente... estoy haciendo un programita que tiene un JTable y que necesita que algunas filas tengan un formato distinto segun el dato que contenga la primera celda de dicha fila. Para ser mas claro,... cada fila (llamemos registro), tiene una fecha,... si esa fecha se pasa de la fecha de hoy, la fila debe pintarse de rojo (puede ser la fila entera, o solo su texto). Si la fila no se "caduco" deberia mostrarse en un color blanco. Ojala pueda alguien ayudarme, ya se dandome un ejemplo,.. o tirandome la pista de algun link que me pueda ayudar. Muchas gracias desde ya.
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:JTable con filas distintas

Publicado por ideasjava (83 intervenciones) el 22/01/2008 22:18:21
Lo que necesitas es cambiar el TableCellRenderer. Fijate en esta direccion

http://www.chuidiang.com/java/tablas/tablarender/tablarender.php

eso es lo que necesitas. Cualquier cosa nos preguntas. Estamos en el msn
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:JTable con filas distintas

Publicado por ideasjava (83 intervenciones) el 22/01/2008 22:23:12
Hola de nuevo. Bueno con el ejemplo que te dan en esa pagina puedes pintar una celda o fila segun algunos de los valores de alguna de las celdas. Lo que deberias hacer es que en el metodo getTableCellRendererComponent preguntes por la condicion que necesitas y de acuerdo a eso pintar la celda o fila o cambiar la fuente.
Fijate si te sirve, cualquier cosa pregunta.
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:JTable con filas distintas

Publicado por Diego (7 intervenciones) el 23/01/2008 01:33:31
Hola, muchas gracias por la pronta respuesta... visite la pagina que me diste, pero no puedo aun adaptar el código a mi programa. El problema es que no se muy bien como hacer para pintar la fila completa. En el ejemplo entiendo que lo hace para una celda. Gracias nuevamente, y mil disculpas por mi pocos conocimientos.
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:JTable con filas distintas

Publicado por ideasjava (83 intervenciones) el 23/01/2008 18:38:05
HOLA. EL metodo quedaria mas o menos asi

public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column){
JLabel etiqueta = new JLabel();
if(table.getRowCount()>0){
if(isSelected){
etiqueta.setForeground(Color.white);
etiqueta.setBackground(new Color(49,106,196));
}
else{
if(column == 2){
etiqueta.setForeground(Color.white);
etiqueta.setBackground(Color.red);

}
}
}
etiqueta.setOpaque(true);
etiqueta.setText(value.toString());
}
return etiqueta;
}

ese es un codigo que utilizamos en algun momento. Fijate que al definir un tablecelrenderer tu tienes el control de como se pintan las celdas. Este metodo lo que hace es ir pintando celda por celda.

Por ejemplo si quieres pintar la fila 3 tendras que ir preguntando si es la fila en cuestion y si es asi pintar la celda. Como dijiste que primero para que se pueda pintar una fila tiene que cumplir con una condicion, podrias hacer lo siguiente. Primero te fijas si la fila supongamos 4 tiene que pintarse, si es asi envia el numero de fila a la clase que contiene el metodo getTableCellRendererComponent y luego dentro del metodo getTableCellRendererComponent preguntas si la celda que esta por pintar es de la fila que acabas de pasar por parametro, si es asi pintas.

Otra forma podria ser que llenes un vector con todas las filas que tienes que pintar. Luego recien defines el tablecellrenderer y luego en el metodo getTableCellRendererComponent vas recorriendo ese vector y haciendo la pregunta para que puedas pintar
Bueno espero que te sirva. Cualquier cosa pregunta
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:JTable con filas distintas

Publicado por Diego (7 intervenciones) el 24/01/2008 03:33:35
Hola, me parece que el código que me enviaste es correcto y funciona de 10. Lo digo porque gracias a tu ayuda anterior pude solucionar mi inconveniente y es parecido a lo que haces en estas lineas. Prometo luego subir la solución, por si alguien tiene el mismo inconveniente. Muchas gracias por todas las respuestas. Suerte.
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