User interface JavaFX捕获禁用按钮的事件

User interface JavaFX捕获禁用按钮的事件,user-interface,events,javafx,User Interface,Events,Javafx,在我的应用程序中,我有一个多步骤表单向导,其中 除非输入所有必填字段,否则“下一步”按钮将被禁用 某些字段需要额外验证,例如目录选择器, 我必须检查目录是否存在 为了简化用户体验,我需要显示“无效目录”工具提示 在目录文本字段旁边 我希望在用户尝试单击/输入禁用的选项时显示工具提示 下一个按钮 是否可以在JavaFX中捕获在禁用按钮上执行的事件 public void nextEntered(Event event) { Button button = (Button)event.get

在我的应用程序中,我有一个多步骤表单向导,其中 除非输入所有必填字段,否则“下一步”按钮将被禁用

某些字段需要额外验证,例如目录选择器, 我必须检查目录是否存在

为了简化用户体验,我需要显示“无效目录”工具提示 在目录文本字段旁边

我希望在用户尝试单击/输入禁用的选项时显示工具提示 下一个按钮

是否可以在JavaFX中捕获在禁用按钮上执行的事件

public void nextEntered(Event event) {
    Button button = (Button)event.getSource();
    if(button.isDisabled()){
        validate(currentTab);
    }
}

我有一个类似的问题,当用户将鼠标移到禁用字段上时,我想显示禁用字段值的工具提示

最后,我在禁用字段上贴了一个空白标签,并在上面附加了一个鼠标事件

对于按钮,当按钮启用时,您可以只为虚拟标签鼠标提供透明度,以便用户可以单击按钮

(您甚至可以将标签的鼠标透明度属性绑定到按钮的enabled属性,但我不确定。)


我知道这是一年前提出的,但可能会帮助其他人。

我遇到了一个类似的问题,当用户将鼠标移到禁用字段上时,我想显示禁用字段值的工具提示

最后,我在禁用字段上贴了一个空白标签,并在上面附加了一个鼠标事件

对于按钮,当按钮启用时,您可以只为虚拟标签鼠标提供透明度,以便用户可以单击按钮

(您甚至可以将标签的鼠标透明度属性绑定到按钮的enabled属性,但我不确定。)


我知道这是一年前提出的问题,但可能会对其他人有所帮助。

“禁用的节点不会接收鼠标或键事件。”因此我认为最好的办法是检查鼠标在场景中的位置,如果光标与按钮的边界相交,则生成工具提示。为什么不在选择后立即验证目录?您可以将ChangeListener添加到InputField的TextProperty,或者,如果您使用JavaFX FileChooser,直接检查文件夹是否存在。@el_chupacabra我就是这么做的,我在场景中添加了一个事件侦听器,并检查单击的坐标是否在按钮的边界内。我只是想知道是否有更优雅的解决方案,显然没有。谢谢。@Rikan如果输入的路径无效,我已经在textfield的更改事件中显示了工具提示。问题是用户可能不会立即注意到,因为如果用户单击其他位置,工具提示将被删除,并且可能会想知道为什么他/她无法进入下一步。另一种解决方案可能是使工具提示持久化,直到字段有效为止。谢谢你的建议。“禁用的节点不会接收鼠标或键事件。”因此,我认为最好的办法是检查鼠标在场景中的位置,并在光标与按钮边界相交时生成工具提示。为什么不在选择后立即验证目录?您可以将ChangeListener添加到InputField的TextProperty,或者,如果您使用JavaFX FileChooser,直接检查文件夹是否存在。@el_chupacabra我就是这么做的,我在场景中添加了一个事件侦听器,并检查单击的坐标是否在按钮的边界内。我只是想知道是否有更优雅的解决方案,显然没有。谢谢。@Rikan如果输入的路径无效,我已经在textfield的更改事件中显示了工具提示。问题是用户可能不会立即注意到,因为如果用户单击其他位置,工具提示将被删除,并且可能会想知道为什么他/她无法进入下一步。另一种解决方案可能是使工具提示持久化,直到字段有效为止。谢谢你的建议。