Java - Cambiar el color de las celdas según el valor que contengan

 
Vista:
sin imagen de perfil

Cambiar el color de las celdas según el valor que contengan

Publicado por joaquin (13 intervenciones) el 20/04/2015 11:18:47
Hola a todos. Estoy empezando en esto de java y soy un mar de dudas, pero poco a poco van saliendo, menos esta que no la consigo sacar. Resulta que tengo una tabla y en una columna especifica quiero que se cambie el color de la fuente o el fondo dependiendo de si el valor es positivo o negativo. Yo tengo lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        componente = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
 
        if (row % 2 == 0) {
            componente.setBackground(Color.WHITE);
        } else {
            componente.setBackground(Color.LIGHT_GRAY);
        }
        if (isSelected) {
            componente.setBackground(Color.YELLOW);
            componente.setForeground(Color.BLACK);
        }else{
            componente.setForeground(Color.BLACK);
        }
 
        return componente;
 
    }
 
}

Gracias
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
sin imagen de perfil

Cambiar el color de las celdas según el valor que contengan

Publicado por joaquin (13 intervenciones) el 26/04/2015 20:22:34
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
public class Table extends DefaultTableCellRenderer {
 
    private Component componente;
 
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        componente = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
 
        if (table.getValueAt(row, 4).toString().equals("-500")) {
            setBackground(Color.RED);
            componente.setForeground(Color.BLACK);
 
        } else {
            if (row % 2 == 0) {
                componente.setBackground(Color.WHITE);
            } else {
                componente.setBackground(new Color(224, 224, 224));
            }
            if (isSelected) {
                componente.setBackground(new Color(204,255,229));
                componente.setForeground(Color.BLACK);
            } else {
                componente.setForeground(Color.BLACK);
            }
 
        }
        return componente;
    }
}


Después de probar he conseguido esto, pero ahora no consigo hacer que donde poner el valor -500. Lo que quiero es que en vez de ese valor poner que todo valor que sea menor que 0 me ponga la linea en rojo.

Gracias
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