Ich bin jetzt mit meiner Implementation des Dateibaums
fertig, funktioniert (fast) alles wunderbar, danke nochmal
für die Hilfe.
Jetzt aber das (fast):
Ich habe mir Teile meines Models in eine abstrakte Oberklasse
für meine TreeModels ausgelagert, weil ich auch noch einen
JTree brauche, in dem ich einen XML-DOM-Baum Anzeige. Alles
klar soweit, funktioniert auch. Ich habe einen CellRenderer,
der mir die org.w3c.dom.Node-Objekte des DOM-Baums anzeigt.
Jetzt möchte ich noch zusätzliche Informationen zu den
Einträgen im Baum anzeigen, und zwar als Tooltip. Alles klar,
dachte ich mir, es gibt ja die Methode setToolTipText() von
JComponent. Da alle meine Einträge im Baum JLabels sind, und
da JLabel die Methode setToolTipText() laut API von JComponent
erbt, dachte ich, das es funktionieren könnte, wenn ich einfach
diese Methode benutze. Es geht aber nicht, die Tooltips werden
nicht angezeigt. Weiss jemand warum?
tschö,
David
> Ich habe mir Teile meines Models in eine abstrakte Oberklasse
> für meine TreeModels ausgelagert, weil ich auch noch einen
> JTree brauche, in dem ich einen XML-DOM-Baum Anzeige. Alles
> klar soweit, funktioniert auch. Ich habe einen CellRenderer,
> der mir die org.w3c.dom.Node-Objekte des DOM-Baums anzeigt.
> Jetzt möchte ich noch zusätzliche Informationen zu den
> Einträgen im Baum anzeigen, und zwar als Tooltip. Alles klar,
> dachte ich mir, es gibt ja die Methode setToolTipText() von
> JComponent. Da alle meine Einträge im Baum JLabels sind, und
> da JLabel die Methode setToolTipText() laut API von JComponent
> erbt, dachte ich, das es funktionieren könnte, wenn ich einfach
> diese Methode benutze. Es geht aber nicht, die Tooltips werden
> nicht angezeigt. Weiss jemand warum?
CellRenderer sind Stempel für bunte Punkte mit null Intelligenz. D.h.
du mußt im JTree die Methode überschreiben, die den Text zurückgibt.
Die prüft die Mausposition und ermittelt somit den Node und das
zugehörige Infotextchen.
Gruß,
Josch.
--
Einige Tags in de.comp.lang.java ( siehe http://www.dclj.de/dcljstart.html )
[AWT] - Fragen zum Abstract Window Toolkit (nicht SWING!)
[SERVLET] - Fragen zu Java-Servlets
[NET] - Fragen zu Java im LAN/WAN/Internet
> CellRenderer sind Stempel für bunte Punkte mit null Intelligenz. D.h.
> du mußt im JTree die Methode überschreiben, die den Text zurückgibt.
> Die prüft die Mausposition und ermittelt somit den Node und das
> zugehörige Infotextchen.
Hmm, das hat auch nicht funktioniert. Ich hab in meinem JTree mal
getToolTipText(MouseEvent) überschrieben, eine Debug-Ausgabe
reingemacht, aber die Methode wurde überhaupt nicht aufgerufen.
Daraufhin hab ich mir mal die API nochmal genauer zur Brust genommen.
Im Tutorial zu den Tooltips stand die Lösung. Ich muss beim
Initialisieren des JTree noch folgende Zeile hinzufügen:
ToolTipManager.sharedInstance().registerComponent(tree);
Daraufhin hats funktioniert :).
Obwohl ich Deine Erklärung verstnden habe, scheint da wohl doch
was nicht zu stimmen. Aber Du hast mich auf den richtigen Weg
gebracht, danke!
tschö,
David
David Zerrenner <daze...@web.de> wrote:
> Einträgen im Baum anzeigen, und zwar als Tooltip. Alles klar,
> dachte ich mir, es gibt ja die Methode setToolTipText() von
> JComponent. Da alle meine Einträge im Baum JLabels sind, und
> da JLabel die Methode setToolTipText() laut API von JComponent
> erbt, dachte ich, das es funktionieren könnte, wenn ich einfach
> diese Methode benutze. Es geht aber nicht, die Tooltips werden
> nicht angezeigt. Weiss jemand warum?
ToolTipManager.sharedInstance().registerComponent(tree);
Christian
--
consiros vei la passada folor,
e vei jausen lo joi qu'esper, denan.
> ToolTipManager.sharedInstance().registerComponent(tree);
Yo, 50 Minuten vor Deinem Posting hatte ichs auch, trotzdem
Danke.
tschö,
David
Du hast recht, daran hatte ich nicht gedacht. Es wird nur dann
automatisch regitriert, wenn man setToolTipText verwendet. Wenn du nur
einfach getToolTipText überschreibst, kann es der TTM es nicht
erfahren, dass er agieren soll.
Gruß,
Josch.
--
Einige Tags in de.comp.lang.java ( siehe http://www.dclj.de/dcljstart.html )
[INFO] - Allgemeine Infos, z.B. Links auf Webseiten - keine Frage
[DISCUSSION] - Diskussion zu einem Java-spezifischen Thema - keine Frage
[ANNOUNCE] - Vorstellung neuer Software (möglichst nicht Kommerziell)