ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
685
685
EMPFEHLEN
-
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:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
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
-
Howdie.
Mich wundert es nicht, dass deine Tabellen-View durcheinanderkommt, wenn du mehrere Models verwendest.... IMHO hat eine Table ein Model, dass die Daten enthält und einen Renderer, der die Darstellung des Models auf der Oberfläche regelt.
Warum machst du das denn über mehrere Models? Da gibt es doch diverse andere Möglichkeiten. Du könntest z.B. vor dem Hinzufügen zum Model überprüfen, ob leere Objekte hinzugefügt werden und dies verhindern, oder das (einzige!) Model überprüfen und die leeren Spalten/Reihen löschen.
Falls du es unbedingt mit mehreren Models machen willst, musst du die Header-Daten auch an alle Models übergeben, sonst kenn das Table den richtigen Header nicht. Wie gesagt, es gibt nur ein aktives Model, aus diesem holt sich das View auch die Header-Daten.
Gruß
miffi"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
-
Man kann doch aber mehrere TableModels übereinander legen und dann die Koordinaten entsprechend übersetzen.
So habe ich immer meinen gesamten Datenbestand, falls ich z.B. von anderer Stelle auf die ungefilterten Daten zugreifen möchte.
Ja danke, jetzt hat's klick gemacht. Ich musste ja einfach nur die Methode "getColumnName" in allen TableModels implementieren
(Warum werden hier die Smileys eigentlich "falsch" dargestellt?)
Geändert von Copia (09.09.10 um 09:58 Uhr)
Ähnliche Themen
-
JTable => Renderer
Von MariusMeier im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 6Letzter Beitrag: 14.11.08, 12:44 -
JTable Header mit eigenem Renderer - Rahmen weg...
Von Florian Strienz im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 08.04.08, 10:50 -
komplexes JTable Renderer Problem
Von McSnoop im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 11Letzter Beitrag: 11.02.05, 17:32 -
JTable: Sortierproblem mit Renderer
Von stookie im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 03.12.04, 08:31 -
JTable mit mehreren Componenten in einer Spalte ?
Von vrcat im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 27.08.04, 14:05





Zitieren
Login





