可以在禁用的控件上显示工具提示吗?
我有以下代码,但这不起作用:
txt_searchText.setDisable(true);
txt.searchText.setTooltip(new Tooltip("Message"));
有没有人解决这个问题?
THX
答案 0 :(得分:13)
答案是否定的。目前,您无法在禁用的节点上显示工具提示,原因很简单,因为禁用的节点没有收到任何MouseEvents。
您可以在此处查看官方问题跟踪器中提出的问题(需要登录):https://javafx-jira.kenai.com/browse/RT-28850
解决问题的一个方法是将Control包装成其他内容。
例如,将控件放入另一个Control,如SplitPane或Label。然后,您可以将工具提示应用于该包装并禁用第一个控件。
答案 1 :(得分:0)
以下是使用CustomMenuItem
类的解决方法:
customMenuItem.getContent().setOnMouseEntered(e -> {
if (customMenuItem.isDisable()) {
Tooltip.install(customMenuItem.getContent(), tooltip);
} else {
Tooltip.uninstall(customMenuItem.getContent(), tooltip);
}
});
答案 2 :(得分:0)
不是直接的,但是您可以将按钮扭曲到另一个控件中,并且可以禁用或不禁用按钮,而该控件将响应鼠标的移动。
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()方法。