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

JavaFX检查是否有多个元素悬停

JavaFX检查是否有多个元素悬停,java,javafx,Java,Javafx,我编写了一个动画,当用户单击“用户”导航选项卡时,它会从我的导航栏中滑出搜索栏 如果我的搜索栏失去焦点,或者用户按下导航按钮滑出搜索栏失去焦点,我希望播放反向动画(如图1所示) 目前,我通过将search_包装的onMouseExited属性设置为运行我的hideUsers()方法来实现这一效果,但理想情况下,我希望进行检查 nav_button.setOnMouseExited(new EventHandler<MouseEvent>() { @Override

我编写了一个动画,当用户单击“用户”导航选项卡时,它会从我的导航栏中滑出搜索栏

如果我的搜索栏失去焦点,或者用户按下导航按钮滑出搜索栏失去焦点,我希望播放反向动画(如图1所示)

目前,我通过将search_包装的onMouseExited属性设置为运行我的
hideUsers()
方法来实现这一效果,但理想情况下,我希望进行检查

nav_button.setOnMouseExited(new EventHandler<MouseEvent>()
{
     @Override 
     public void handle(MouseEvent e)
     {
        if(search_wrapper loses focus OR  nav_button loses focus)
           hideUsers();
     }
}
nav_按钮。setOnMouseExited(新的EventHandler()
{
@凌驾
公共无效句柄(MouseEvent e)
{
如果(搜索包装器失去焦点或导航按钮失去焦点)
隐藏者();
}
}
我该如何实现这一点呢?我已经厌倦了在这两个元素上使用.isFocused()方法,但都没有产生任何结果

任何反馈都将不胜感激。

为什么
isFocused()
不起作用?
无论如何,我可以建议您尝试使用JavaFX的属性绑定功能:

// define a boolean property
final BooleanProperty multipleFocusedProperty = new SimpleBooleanProperty();

// add listener to track changes in its value, for debugging purpose only here
multipleFocusedProperty.addListener(new ChangeListener<Boolean>() {
    @Override
    public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
        System.out.println("newValue multiple focused = " + newValue);
    }
});

// bind it to other property values
multipleFocusedProperty.bind(search_wrapper.focusedProperty().not().or(nav_button.focusedProperty().not()));

// finally use it as
nav_button.setOnMouseExited(new EventHandler<MouseEvent>()
{
     if(multipleFocusedProperty.getValue())
         hideUsers();
}
//定义一个布尔属性
final BooleanProperty multipleFocusedProperty=新的SimpleBoleanProperty();
//添加侦听器以跟踪其值的更改,此处仅用于调试目的
multipleFocusedProperty.addListener(新的ChangeListener(){
@凌驾

public void已更改(您在那里拥有的ObservaleValueNice GUI..谢谢@Marounnaroun非常好的UI,您能与我们分享您的dashbord吗?@SoltaniNeji请原谅代码,它的质量有点差(我3年前刚开始编程时写的)。你可以在这里找到源代码:请记住,自从我3年前编译它以来,我还没有测试过它,可能有一些编译错误。享受:)我不知道为什么isFocused()不起作用,但这解决了我的问题,非常感谢!