在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没有传递给禁用的控件(可能也没有节点)供参考,我问了我自己的问题(我认为是什么)导致这种行为的根本原因