Java - Alternar colores Jtable segun valor

 
Vista:

Alternar colores Jtable segun valor

Publicado por Rkl (1 intervención) el 20/05/2015 12:14:26
Buenos dias,
Debo crear una tabla que recoge los datos de una base de datos mysql. Hasta aquí sin problema. Ahora se pide que se coloreen las filas segun el valor de una columna, para diferenciar que filas corresponden a ese valor.
Es decir, cuando cambie de valor, cambiará de color. Las siguientes filas mantendrán ese color mientras sea el mismo valor. Cuando de nuevo haya un valor distinto en la columna, volverá al primer color, alternando asi dos colores.
Lo intenté con DefaultTableCellRenderer, pero solo consigo que coloree la primera fila que encuentra un cambio...
Alguna idea?

Gracias a todos!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@Override
    public Component getTableCellRendererComponent ( JTable table, Object value, boolean selected, boolean focused, int row, int column )
    {
 
        table.setForeground(Color.black);	//color de texto
        setOpaque(true);
        super.getTableCellRendererComponent(table, value, selected, focused, row, column);
        //si es la primera fila
        if(row==0){
        	color=Color.white;
        }else{
        	Component comp=table.getComponentAt(row-1, columna_patron);
        	//Si la celda NO es igual al anterior, se cambia el color
        	if(  (table.getValueAt(row,columna_patron).equals(table.getValueAt(row-1,columna_patron))) ) {
        		//si el valor es igual
        		if(comp.getBackground().equals(Color.white)){
        			setBackground(Color.WHITE);
        		}else{
        			setBackground(gris);
        		}
        		//si NO es igual
        	}else{
        		if(comp.getBackground().equals(Color.white)){
        			setBackground(gris);
        		}else{
        			setBackground(Color.white);
        		}
        	}
        }
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