Hi,
ich bin jetzt seit Stunden auf der Suche nach meinem Problem, weiß dass das viele haben und scheinbar die Lösungen auch im Netz stehen. Ich bin aber nicht clever genug sie für mein Beispiel anzuwenden.
Also ich lese Daten aus einer Datenbank aus und schreibe die in ein JTable. Unteranderem gibt es dort auch true/false werte. Diese werden erkannt und auch als Checkboxen dargestellt. Ich möchte nun eine ZEILE, die den Checkboxwert FALSE hat rot färben.
Jetzt habe ich das Problem, dass die gesamte(!!) Zeile zwar gefärbt ist, ich aber keine Checkboxen, sondern nur Text angezeigt bekomm. Wie muss ich die CellRenderer ändern?
Hier der Code des myTableCellRenderer:
Hier der Code des checkBoxRenderer:
Ich entschuldige mich ernsthaft für die Redundanz des Themas, aber ich bekomm einfach keinei Lösung gefunden...
Viel Grüße
Christian
ich bin jetzt seit Stunden auf der Suche nach meinem Problem, weiß dass das viele haben und scheinbar die Lösungen auch im Netz stehen. Ich bin aber nicht clever genug sie für mein Beispiel anzuwenden.
Also ich lese Daten aus einer Datenbank aus und schreibe die in ein JTable. Unteranderem gibt es dort auch true/false werte. Diese werden erkannt und auch als Checkboxen dargestellt. Ich möchte nun eine ZEILE, die den Checkboxwert FALSE hat rot färben.
Jetzt habe ich das Problem, dass die gesamte(!!) Zeile zwar gefärbt ist, ich aber keine Checkboxen, sondern nur Text angezeigt bekomm. Wie muss ich die CellRenderer ändern?
Code:
myTable.setDefaultRenderer(Object.class, myTableCellrenderer);
myTable.setDefaultRenderer(Boolean.class, checkboxRenderer);
Hier der Code des myTableCellRenderer:
Code:
public class MyTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer {
private static final int VALIDATION_COLUMN = 6;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
String status = table.getModel().getValueAt(row, VALIDATION_COLUMN).toString();
if (status.equals("false")) {
comp.setBackground(Color.RED);
}
else
comp.setBackground(Color.BLUE);
return comp;
}
}
Hier der Code des checkBoxRenderer:
Code:
public class CheckBoxRenderer extends DefaultTableCellRenderer implements TableCellRenderer {
private static final int VALIDATION_COLUMN = 6;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
String status = table.getModel().getValueAt(row, VALIDATION_COLUMN).toString();
if (status.equals("false")) {
JCheckBox checkbox = new JCheckBox();
comp.setBackground(Color.RED);
}
else
comp.setBackground(Color.BLUE);
return comp;
}
}
Ich entschuldige mich ernsthaft für die Redundanz des Themas, aber ich bekomm einfach keinei Lösung gefunden...
Viel Grüße
Christian