Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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_Javafx 8 - Fatal编程技术网

在JavaFX中显示禁用控件的工具提示

在JavaFX中显示禁用控件的工具提示,java,javafx,javafx-8,Java,Javafx,Javafx 8,是否可以在禁用的控件上显示工具提示 我有以下代码,但这不起作用: txt_searchText.setDisable(true); txt.searchText.setTooltip(new Tooltip("Message")); 有人能解决这个问题吗 Thx答案是否定的。当前您无法在禁用的节点上显示工具提示,原因很简单,禁用的节点不会收到任何MouseEvents 您可以在此处的官方问题跟踪程序中看到提出的问题(需要登录): 解决问题的一个方法是将控制权包装成其他内容 例如,将控件放入另一

是否可以在禁用的控件上显示工具提示

我有以下代码,但这不起作用:

txt_searchText.setDisable(true);
txt.searchText.setTooltip(new Tooltip("Message"));
有人能解决这个问题吗


Thx

答案是否定的。当前您无法在禁用的节点上显示工具提示,原因很简单,禁用的节点不会收到任何MouseEvents

您可以在此处的官方问题跟踪程序中看到提出的问题(需要登录):

解决问题的一个方法是将控制权包装成其他内容


例如,将控件放入另一个控件中,如拆分窗格或标签。然后,您可以将工具提示应用于该包装器并禁用第一个控件。

下面是使用
CustomMenuItem
类的解决方法:

    customMenuItem.getContent().setOnMouseEntered(e -> {
        if (customMenuItem.isDisable()) {
            Tooltip.install(customMenuItem.getContent(), tooltip);
        } else {
            Tooltip.uninstall(customMenuItem.getContent(), tooltip);
        }
    });

不直接,但你可以将你的按钮扭曲到另一个控件中,当你的按钮可以被禁用或不禁用时,控件将响应鼠标的移动

Button button = new Button("Click me");     //create a button
button.setDisable(true);        //disable button in some way
SplitPane splitPane = new SplitPane(button);   //warp it into a splitPane
splitPane.setTooltip(new Tooltip("I'm the Tooltip Massage")); //Crete a tooltip
SplitPane扩展的节点“控制”非区域和非窗格

所以它是一个控件,最适合我们的情况(扭曲按钮)


必须始终使用一个控件扭曲另一个控件。另一种方式是,您将无法访问setTooltip()方法。

没有解决方案,只是观察:看起来mouseEvents没有传递给禁用的控件(可能也没有节点)供参考,我问了我自己的问题(我认为是什么)导致这种行为的根本原因