Hallo,
ich möchte Zeilen einer JTable unterschiedlich einfärben.
Hierzu habe ich mehrere Links bereits gefunden und den Code entsprechend implementiert:
http://www.tutorials.de/swing-java2d-3d-swt-jface/195978-jtable-zelle-gezielt-einfaerben.html
Mein Code:
Nun ist es so, dass beim Setzen der Werte das Setzen der Farben verschoben ist.
Ich habe 7 Zeilen.
Zeile 1: in Spalte 3 steht ""
Zeile 2: in Spalte 3 steht "kalt"
Zeile 3: in Spalte 3 steht "kalt"
Zeile 4: in Spalte 3 steht ""
Zeile 5: in Spalte 3 steht "kalt"
Zeile 6: in Spalte 3 steht "warm"
Zeile 7: in Spalte 3 steht "kalt"
Eingefärbt werden die Zeilen mit (null bedeutet Standardhintergrund:
Zeile 1: null
Zeile 2: null
Zeile 3: grün
Zeile 4: grün
Zeile 5: grün
Zeile 6: grün
Zeile 7: gelb
Irgendwie setzt der beim Farbe setzen eine Zeile zu spät an.
Weiß jemand warum das so ist und wie ich das beheben kann?
VG
Eraser
ich möchte Zeilen einer JTable unterschiedlich einfärben.
Hierzu habe ich mehrere Links bereits gefunden und den Code entsprechend implementiert:
http://www.tutorials.de/swing-java2d-3d-swt-jface/195978-jtable-zelle-gezielt-einfaerben.html
Mein Code:
PHP:
import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class LeadTableRenderer extends DefaultTableCellRenderer {
/**
*
*/
private static final long serialVersionUID = -7171382203765416074L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table,
value, isSelected, hasFocus, row, column);
if(column == 3) {
if (value.equals("Kalt")) {
setBackground(Color.GREEN);
} else if (value.equals("Warm")) {
setBackground(Color.YELLOW);
} else if(value.equals("Heiß")) {
setBackground(Color.RED);
}
}
return this;
}
}
Nun ist es so, dass beim Setzen der Werte das Setzen der Farben verschoben ist.
Ich habe 7 Zeilen.
Zeile 1: in Spalte 3 steht ""
Zeile 2: in Spalte 3 steht "kalt"
Zeile 3: in Spalte 3 steht "kalt"
Zeile 4: in Spalte 3 steht ""
Zeile 5: in Spalte 3 steht "kalt"
Zeile 6: in Spalte 3 steht "warm"
Zeile 7: in Spalte 3 steht "kalt"
Eingefärbt werden die Zeilen mit (null bedeutet Standardhintergrund:
Zeile 1: null
Zeile 2: null
Zeile 3: grün
Zeile 4: grün
Zeile 5: grün
Zeile 6: grün
Zeile 7: gelb
Irgendwie setzt der beim Farbe setzen eine Zeile zu spät an.
Weiß jemand warum das so ist und wie ich das beheben kann?
VG
Eraser