ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
700
700
EMPFEHLEN
-
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...infaerben.html
Mein Code:
Nun ist es so, dass beim Setzen der Werte das Setzen der Farben verschoben ist.PHP-Code: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;
}
}
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 habe eine Lösung gefunden:
http://www.java-forum.org/awt-swing-...lrenderer.html
Hier noch kurz meine Lösung:
Das Einfärben der Zeilen war deswegen um eine Zeile verschoben, weil ich mein Prüfkriterium in der letzten Spalte einer Zeile befand.
Erst ab diesem Zeitpunkt, als der Wert gesetzt wurde, erkannte der Renderer, dass er die Felder anders einfärben muss.
Somit habe ich die Spalte, die das Prüfkriterium für den Renderer enthält an den Zeilenanfang verschoben und meinen Renderer entsprechend angepasst (Details siehe Link).
Somit habe ich in meinem eigenen Renderer folgendes gemacht:
PHP-Code:import java.awt.Color;
import javax.swing.table.DefaultTableCellRenderer;
public class LeadTableRenderer extends DefaultTableCellRenderer {
/**
*
*/
private static final long serialVersionUID = -7171382203765416074L;
Color currentCol;
@Override
protected void setValue(Object value) {
super.setValue(value);
if (value.equals("Kalt")) {
currentCol = Color.GREEN;
} else if (value.equals("Warm")) {
currentCol = Color.YELLOW;
} else if (value.equals("Heiß")) {
currentCol = Color.RED;
} else if (value.equals("unqualifiziert")){
currentCol = null;
}
setBackground(currentCol);
}
}
Ähnliche Themen
-
JTable einfärben bei Änderung
Von salzkrebs im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 15Letzter Beitrag: 25.08.09, 13:04 -
jTable Zeileneinfärben unter Bedingung
Von Myar im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 08.09.08, 14:39 -
JTable - Nach Suche selektierte Zeilen anzeigen
Von takidoso im Forum JavaAntworten: 2Letzter Beitrag: 10.11.06, 14:41 -
JTable Zelle gezielt einfärben
Von ProggYLouie im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 12.03.05, 17:43 -
JPanel-Zeilen abwechselnd einfärben
Von DealeyLama im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 21.02.05, 11:56





Zitieren
Login





