Hallo zusammen,
ich habe einen Cellrenderer, der mir Grafiken in die Celle einsetzt.
Jetzt möchte ich auch noch die Hintergrundfarbe ändern, dass macht er aber nicht.
Ohne Grafik ist das kein Problem.

ich habe einen Cellrenderer, der mir Grafiken in die Celle einsetzt.
Jetzt möchte ich auch noch die Hintergrundfarbe ändern, dass macht er aber nicht.
Ohne Grafik ist das kein Problem.

Code:
class PicRenderer implements TableCellRenderer {
public static final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
JLabel label = new JLabel();
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table,
value, isSelected, hasFocus, row, column);
// Apply zebra style on table rows.
if (row % 2 == 0) {
c.setBackground(Color.decode("#E6EEF6"));
} else {
c.setBackground(Color.WHITE);
}
if (column ==1 && value.toString().toUpperCase().startsWith("OK")){
Icon ic = CommonsSwingUtil.getImage("OK-Icon.jpg");
label.setIcon(ic);
return label;
}
if (column ==1 && value.toString().toUpperCase().startsWith("CRIT")){
Icon ic = CommonsSwingUtil.getImage("error-Icon.jpg");
label.setIcon(ic);
return label;
}
if (column ==1 && value.toString().toUpperCase().startsWith("WARN")){
Icon ic = CommonsSwingUtil.getImage("warn-Icon.jpg");
label.setIcon(ic);
return label;
}
if (column ==1 && value.toString().toUpperCase().startsWith("UNKN")){
Icon ic = CommonsSwingUtil.getImage("help.png");
label.setIcon(ic);
return label;
}
table.doLayout();
return c;
}