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

2022-09-04 01:18:46

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

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

txt_searchText.setDisable(true);
txt.searchText.setTooltip(new Tooltip("Message"));

有没有人为这个问题找到解决方案?

感谢


答案 1

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

您可以在此处的官方问题跟踪器中看到提出的问题(需要登录):https://javafx-jira.kenai.com/browse/RT-28850

问题的一个解决方案可能是将控件包装到其他内容中。

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


答案 2

不是直接的,但您可以将按钮扭曲到另一个控件中,虽然您的按钮可能被禁用或不禁用,但该控件将响应鼠标移动。

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

拆分窗格扩展“控件”而不是区域而不是窗格的节点。

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

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


推荐