2015-03-19 16 views
5

Dies ist, wie ich meine Tooltips gesetzt:So deaktivieren/auszublenden Tooltips in JavaFX

if(Globals.isShowTooltips()) { 
    locale = new Locale(Globals.getGuiLanguage()); 
    bundle = ResourceBundle.getBundle("bundles.lang", locale);    

    btnSettingsApply.setTooltip(
     new Tooltip(bundle.getString("btnSettingsApplyt"))); 

    btnSettingsOk.setTooltip(
     new Tooltip(bundle.getString("btnSettingsOkt"))); 

    btnSettingsCancel.setTooltip(
     new Tooltip(bundle.getString("btnSettingsCancelt")));    
} 

Wie kann ich Tooltips verstecken? Es scheint mir, dass es dafür keinen geradlinigen Ansatz gibt.

Jede Hilfe wird geschätzt!

Antwort

7

Für Kontrollen

Kontrollen Habe eine setter for tooltips. Verwenden Sie das für Steuerelemente.

Um den Tooltip auf einer Steuerung eingestellt:

btnSettingsOk.setTooltip(new Tooltip("OK Button"));  

Um den Tooltip an einer Steuer zu entfernen:

btnSettingsOk.setTooltip(null);  

Für Knoten, die

Layout-Scheiben nicht Steuerelemente sind, Formen und andere Knoten haben keinen Setter für Tooltips (weil Tooltips als Steuerelemente klassifiziert sind und die JavaFX-Entwickler eine Abhängigkeit vermeiden wollten) der allgemeinen Szenendiagrammknoten auf dem Steuerpaket). Diese Knoten können jedoch weiterhin mit QuickInfos arbeiten, die die statischen Methoden install und uninstall verwenden.

Das ist so ziemlich Ikallas Antwort, obwohl ich es nur mit würde Sie raten, wenn die Knoten in Rede stehenden Art keine explizite setTooltip Methode nicht liefern - obwohl es auch für die Kontrollen funktioniert. Die set-Methode für Steuerelemente ist einfacher zu verwenden, da das Steuerelement einen Verweis auf den Tooltip speichert, während bei einer statischen Deinstallation Ihre Anwendung dafür verantwortlich ist, den Verweis auf den Tooltip beizubehalten, damit er später entfernt werden kann.

Um den Tooltip auf einem Knoten wird, der kein Steuer ist:

Tooltip okTooltip = new Tooltip("OK Button"); 
Tooltip.install(btnSettingsOk, okTooltip))); 

Um den Tooltip von einem Knoten zu entfernen, die keine Kontrolle:

Tooltip.uninstall(btnSettingsOk, okTooltip); 
+0

Gute Antwort! JavaFX-Tooltips für mich verständlicher gemacht;) – lkallas

+0

@jewelsea siehe meinen Kommentar zu Ikallas Antwort. Sie benötigen den Tooltip-Parameter nicht in Tooltip.uninstall(). Es wird überhaupt nicht verwendet (sehen Sie sich die Implementierung an) – Rainer

+0

Die öffentliche API enthält den Tooltip zur Deinstallation als zweiten Parameter für [uninstall] (https://docs.oracle.com/javase/8/javafx/api/javafx) /scene/control/Tooltip.html#uninstall-javafx.scene.Node-javafx.scene.control.Tooltip-) Methode.Daher würde ich geneigt sein, den richtigen Tooltip zur Deinstallation an die Methode zu übergeben, unabhängig davon, was die Implementierung tut (auch wenn Sie in Ihrem anderen Kommentar darauf hinweisen, dass der Parameter in der aktuellen internen Implementierung von Java 8 nicht verwendet wird). Danke, dass du es aufgezeigt hast. – jewelsea

1

OK, nur gefunden Antwort auf meine eigene Frage :)

Tooltip.install(btnSettingsOk, new Tooltip(bundle.getString("btnSettingsOkt"))); //This is for showing 

Tooltip.uninstall(btnSettingsOk, new Tooltip(bundle.getString("btnSettingsOkt"))); //This is for disabling 

Wenn es etwas besseren Weg ist, würde ich es wissen möchte;)

+0

Eine andere Möglichkeit wäre, einfach eingestellt Der Tooltipp auf Null. Dann wieder anwenden, wenn Sie es brauchen. Aber ich denke, deine eigene Lösung könnte besser sein;) –

+0

Gerade ist das hier aufgefallen und du brauchst den zweiten Parameter bei der Deinstallation nicht. Ziemlich schwere API scheitern, wenn Sie mich fragen, aber der zweite Parameter wird überhaupt nicht verwendet. öffentliche statische Void-Deinstallation (Knotenknoten, Tooltip t) { BEHAVIOR.uninstall (Knoten); } – Rainer