我编写了一个动画,当用户点击"用户"导航标签时,该动画会从导航栏中滑出搜索栏.
如果我的搜索栏失去焦点,或者如果用户按下导航按钮以滑出栏,则我希望播放反向动画失去焦点(如图1所示)
我目前通过设置search_wrapper的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();
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何实现这一目标?我已经厌倦了对两个元素使用.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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |