Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaFX中禁用/隐藏工具提示_Java_Javafx_Tooltip_Hide - Fatal编程技术网

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

如何在JavaFX中禁用/隐藏工具提示,java,javafx,tooltip,hide,Java,Javafx,Tooltip,Hide,以下是我设置工具提示的方式: if(Globals.isShowTooltips()) { locale = new Locale(Globals.getGuiLanguage()); bundle = ResourceBundle.getBundle("bundles.lang", locale); btnSettingsApply.setTooltip( new Tooltip(bundle.getString("btnSet

以下是我设置工具提示的方式:

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")));            
}
如何隐藏工具提示?在我看来,这并没有一个直截了当的方法


感谢您的帮助

好的,刚刚找到我自己问题的答案:)


如果有更好的方法,我想知道;)

用于控件

控件有一个新的属性。因此,对于控件,请使用该选项

要在控件上设置工具提示,请执行以下操作:

btnSettingsOk.setTooltip(new Tooltip("OK Button"));    
btnSettingsOk.setTooltip(null);    
Tooltip okTooltip = new Tooltip("OK Button");
Tooltip.install(btnSettingsOk, okTooltip))); 
Tooltip.uninstall(btnSettingsOk, okTooltip); 
要删除控件上的工具提示,请执行以下操作:

btnSettingsOk.setTooltip(new Tooltip("OK Button"));    
btnSettingsOk.setTooltip(null);    
Tooltip okTooltip = new Tooltip("OK Button");
Tooltip.install(btnSettingsOk, okTooltip))); 
Tooltip.uninstall(btnSettingsOk, okTooltip); 
对于非控件的节点

布局窗格、形状和其他节点没有工具提示的setter(因为工具提示被分类为控件,JavaFX开发人员希望避免常规场景图节点依赖于控件包)。但是,这些节点仍然可以使用静态和方法处理工具提示

这几乎是Ikallas的答案,尽管我只建议在所讨论的节点类型不提供显式的
setTooltip
方法时使用它,即使它也适用于控件。控件上的set方法使用起来更简单,因为控件存储对工具提示的引用,而对于静态卸载,应用程序负责保留对工具提示的引用,以便以后删除它

要在非控件的节点上设置工具提示,请执行以下操作:

btnSettingsOk.setTooltip(new Tooltip("OK Button"));    
btnSettingsOk.setTooltip(null);    
Tooltip okTooltip = new Tooltip("OK Button");
Tooltip.install(btnSettingsOk, okTooltip))); 
Tooltip.uninstall(btnSettingsOk, okTooltip); 
要从非控件的节点删除工具提示,请执行以下操作:

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

另一种方法是将工具提示设置为null。然后在需要时重新应用它。但我认为你自己的解决方案可能更好;)刚遇到这个问题,卸载时不需要第二个参数。如果你问我,相当重的API失败了,但是第二个参数根本没有使用。publicstaticvoiduninstall(Node节点,工具提示t){BEHAVIOR.uninstall(Node);}回答得好!使JavaFX工具提示对我来说更容易理解;)@请看我对Ikallas答案的评论。您不需要tooltip.uninstall()上的tooltip参数。它根本没有被使用(看看实现),公共API将要卸载的工具提示作为方法的第二个参数。因此,我倾向于将正确的工具提示传递给方法,以便卸载,而不管实现做了什么(尽管,正如您在其他注释中指出的,参数未在Java 8的当前内部实现中使用)。不过谢谢你指出这一点。