Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JLabels als CellRenderer-Components

0 views
Skip to first unread message

David Zerrenner

unread,
May 7, 2002, 1:59:27 PM5/7/02
to
Hi.

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

Aljoscha Rittner

unread,
May 7, 2002, 2:25:29 PM5/7/02
to
David Zerrenner schrieb:

> 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

David Zerrenner

unread,
May 7, 2002, 3:20:13 PM5/7/02
to
Aljoscha Rittner schrieb:

> 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

Christian Kaufhold

unread,
May 7, 2002, 4:10:55 PM5/7/02
to
Hallo!

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.

David Zerrenner

unread,
May 7, 2002, 4:11:04 PM5/7/02
to
Christian Kaufhold wrote:

> ToolTipManager.sharedInstance().registerComponent(tree);

Yo, 50 Minuten vor Deinem Posting hatte ichs auch, trotzdem
Danke.

tschö,
David

Aljoscha Rittner

unread,
May 7, 2002, 5:14:14 PM5/7/02
to
David Zerrenner schrieb:

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)

0 new messages