Hallo zusammen,
ich bin gerade dabei meine Matrix in einer JTable zu realisieren und bin gerade dabei, den TableHeader anzupassen.
Für meine JTable benutze ich drei verschiedene Tabellenmodelle. Eins enthält alle Daten, das andere filtert leere Reihen und das dritte leere Spalten raus.
Seitdem ich die Tabellenmodelle eingebaut habe, die Reihen und Spalten filtern, werden im TableHeader nicht mehr die richtigen Texte angezeigt sondern nur noch die Standardüberschriften "A", "B", ...
Jetzt schätze ich, das hat irgendwas mit irgendwelchen Koordinaten oder so zu tun?
Wie berücksichtige ich sowas denn im Renderer vom TableHeader? Ich steh gerade irgendwie ein bisschen aufm Schlauch...
Mein Renderer für den TableHeader sieht übrigens ganz schlicht so aus:
Und value enthält halt den "falschen" Wert :-(
ich bin gerade dabei meine Matrix in einer JTable zu realisieren und bin gerade dabei, den TableHeader anzupassen.
Für meine JTable benutze ich drei verschiedene Tabellenmodelle. Eins enthält alle Daten, das andere filtert leere Reihen und das dritte leere Spalten raus.
Seitdem ich die Tabellenmodelle eingebaut habe, die Reihen und Spalten filtern, werden im TableHeader nicht mehr die richtigen Texte angezeigt sondern nur noch die Standardüberschriften "A", "B", ...
Jetzt schätze ich, das hat irgendwas mit irgendwelchen Koordinaten oder so zu tun?
Wie berücksichtige ich sowas denn im Renderer vom TableHeader? Ich steh gerade irgendwie ein bisschen aufm Schlauch...
Mein Renderer für den TableHeader sieht übrigens ganz schlicht so aus:
Code:
public class V8HeaderCellRenderer implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
JComponent c = null;
if(value instanceof String ) {
c = createVLabel((String)value);
} else {
c = new JLabel(value.toString());
((JLabel)c).setHorizontalAlignment(SwingConstants.CENTER);
}
c.setFont(table.getFont());
c.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
c.setOpaque(true);
return c;
}
private JComponent createVLabel(String caption) {
JLabel ret = new JLabel();
ret.setIcon(new VTextIcon(ret, caption, VTextIcon.ROTATE_LEFT));
ret.setFont(ret.getFont().deriveFont(Font.PLAIN));
return ret;
}
}
Und value enthält halt den "falschen" Wert :-(