Hi ihr!
Ich bin so langsam am verzweifeln, weil ich einfach keinen Fehler finden kann.
Ich setze in einer JTable einen CellRenderer, der mir alle Strings einfach nur in rot darstellen soll (damit das Problem auf ein Minimum reduziert ist).
Habe also eine JTable erstellt, und sie wie folgt modifiziert:
Die Klasse RedStringTableCellRenderer sieht wie folgt aus:
Doch der Renderer stellt alle Strings in der Tabelle einfach nicht in rot dar! Auch die Ausgabe, die als aller erstes in der Methode definiert ist, wird nie ausgegeben.
Ich habe jetzt schon so einiges ausprobiert, doch es will nichts klappen. Auch das Erweitern von DefaultTableCellRenderer funktioniert nicht.
Das Problem muss somit nicht am Renderer liegen, sondern eher daran, dass er nicht richtig registriert wird.
Hat einer ne Idee, woran das liegen bzw. was eine mögliche, (gern gemachte) Fehlerquelle sein könnte?
Ich bin so langsam am verzweifeln, weil ich einfach keinen Fehler finden kann.
Ich setze in einer JTable einen CellRenderer, der mir alle Strings einfach nur in rot darstellen soll (damit das Problem auf ein Minimum reduziert ist).
Habe also eine JTable erstellt, und sie wie folgt modifiziert:
Code:
jTable1.setDefaultRenderer(String.class, new RedStringTableCellRenderer());
String[][] data = { {"aaa", "bbb" }, { "ccc", "ddd" } };
String[] cols = new String[] {"1", "2"};
DefaultTableModel tableModel = new DefaultTableModel(data, cols);
jTable1.setModel(tableModel);
Die Klasse RedStringTableCellRenderer sieht wie folgt aus:
Code:
public class RedStringTableCellRenderer extends JLabel implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
System.out.println("Hier meldet sich der Cellrenderer (wahrscheinlich nicht!");
setText(value.toString());
setFont(table.getFont());
setForeground(Color.RED);
setOpaque(true);
return this;
}
}
Doch der Renderer stellt alle Strings in der Tabelle einfach nicht in rot dar! Auch die Ausgabe, die als aller erstes in der Methode definiert ist, wird nie ausgegeben.
Ich habe jetzt schon so einiges ausprobiert, doch es will nichts klappen. Auch das Erweitern von DefaultTableCellRenderer funktioniert nicht.
Das Problem muss somit nicht am Renderer liegen, sondern eher daran, dass er nicht richtig registriert wird.
Hat einer ne Idee, woran das liegen bzw. was eine mögliche, (gern gemachte) Fehlerquelle sein könnte?