如何在JavaFX中禁用/隐藏工具提示

lka*_*las 8 java javafx tooltip hide

这就是我设置工具提示的方法:

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")));            
}
Run Code Online (Sandbox Code Playgroud)

如何隐藏工具提示?在我看来,没有一个直截了当的方法.

任何帮助表示赞赏!

jew*_*sea 11

对于控件

控件有一个工具提示setter.所以对于控件,使用它.

要在控件上设置工具提示:

btnSettingsOk.setTooltip(new Tooltip("OK Button"));    
Run Code Online (Sandbox Code Playgroud)

要删除控件上的工具提示:

btnSettingsOk.setTooltip(null);    
Run Code Online (Sandbox Code Playgroud)

对于非控件的节点

布局窗格,形状和其他节点没有工具提示的设置器(因为工具提示被分类为控件,JavaFX开发人员希望避免一般场景图节点对控件包的依赖).但是,这些节点仍然可以使用静态installuninstall方法来处理工具提示.

这几乎是Ikallas的答案,但我只建议在有问题的节点类型不提供显式setTooltip方法时使用它- 即使它也适用于控件.控件上的set方法更易于使用,因为控件存储对Tooltip的引用,而对于静态卸载,应用程序负责保留对工具提示的引用,以便以后可以将其删除.

要在不是控件的节点上设置工具提示:

Tooltip okTooltip = new Tooltip("OK Button");
Tooltip.install(btnSettingsOk, okTooltip))); 
Run Code Online (Sandbox Code Playgroud)

要从不是控件的节点中删除工具提示:

Tooltip.uninstall(btnSettingsOk, okTooltip); 
Run Code Online (Sandbox Code Playgroud)