Java - colorear fila jTable

   
Vista:

colorear fila jTable

Publicado por patry (1 intervención) el 21/09/2009 14:02:45
hola, me gustaria saber como podria colorear la fila de una tabla. La tabla estaria compuesta de ciertos valores en los que al final hay un total, y quiero que al cambiar los valores de la tabla, si el total es mayor que cero, esa fila se pinte de un color, y el resto de la tabla quede igual. y que si varias filas cumplen la condicion, queden pintadas.
me gustaria saber si se puede hacer todo en una linea, tipo:

if (condicion) {
pintar_linea_tabla;
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:colorear fila jTable

Publicado por Yamil Bracho (2072 intervenciones) el 22/09/2009 21:25:42
Tienes que hacer una clase que herede de DefaultTableCellRenderer y asignarlo como el renderer de tu jtable. Por ejemplo:

package jswiftcon.core.ui;

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

public class SpreadSheetRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected,
boolean hasFocus,
int row, int col) {
if (row % 2 != 0) {
setBackground(new Color(189, 214, 231));
} else {
setBackground(Color.white);
}

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
}
}

...
for (int i = startCol, len = table.getColumnCount(); i < len; i++) {
TableColumn column = table.getColumn(table.getColumnName(i));
column.setCellRenderer(new SpreadSheetRenderer());
}
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:colorear fila jTable

Publicado por Llopez (1 intervención) el 20/02/2012 21:23:24
El unico problema de la solución es que si uno de los campos es bool no se visualiza un checkbox en la tabla, como se puede corregir
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