ParentNodes bei JTreeTable farbilch hervorheben

Status
Nicht offen für weitere Antworten.

KalleWirsch

Aktives Mitglied
Hi zusammen,

ich versuche schond en lieben langen Tag in meiner JTreeTable die ParentNodes bzw die Nodes ohne Kinder farblich hervorzuheben. Allerdings gelingt es mir nicht.

Wie kann ich denn bei 'getTableCellRendererComponent(...)' die einzelnen Knoten ansprechen. Wenn ich über den uebergeben Parameter row gehe funktioniert es nicht da er ja einfach die Anzahl zählt und nichts darüber aussagt ob es nun ein Blatt ist oder nicht.
Die einzelnen Tutorials bzw Infos zur JTreeTable die man im Netz so findet habe ich schon abgegrast konnte aber nichts brauchbares finden. Nun hoffe ich, dass mir hier jemand helfen kann.

Viele Grüße
KalleWirsch ...
 

Ebenius

Top Contributor
Sofern es sich hierbei um den (äußerst unfertigen) Implementierungsvorschlag von Sun handelt, bau Dir in die JTreeTable zwei Methoden ein: [HIGHLIGHT="Java"]public TreeTableModel getTreeTableModel() {
return (TreeTableModel) tree.getModel();
}

public TreePath getPathForRow(int row)(int row) {
return tree.getPathForRow(row);
}[/HIGHLIGHT]
Im Cell Renderer kannst Du dann abfragen: [HIGHLIGHT="Java"]final JTreeTable treeTable = ((JTreeTable) table);
final JTreePath path = treeTable.getPathForRow(row);
final TreeTableModel model = treeTable.getTreeTableModel();
final boolean isLeaf = model.isLeaf(path.getLastPathComponent());[/HIGHLIGHT]
Ebenius
 

KalleWirsch

Aktives Mitglied
Ja, ich benutze den aüßerst unfertigen Implementierungsvorschlag von Sun ;-)
Danke übrigens, dein Codeschnipsel hat mir sehr weiter geholfen.

Vielleicht weißt du auch auf mein folgendes Problem Rat. Ich färbe die Zeile mit setBackround(Blue) ein. Allerdings habe ich mehrere Spalten in diesem Fall 5. Und er färbt mir nur die erste ein.

Über 'model.getColumnClass(1)' kann ich die Spalten nicht ansprechen damit ich setBackround() anwenden kann.
Habt ihr noch einen Tip auf Lager ;-) ?

Danke und Gruß!
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Der Tipp lautet: Einen TableCellRenderer für alle anderen Spalten / Spaltentypen setzen. Hilft der Dir schon? :)

Wenn nicht, dann musst Du's ggf. nochmal anders erklären.

Ebenius
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben