当JavaFX阶段失去焦点时,如何运行一段代码(或更确切地说:关闭舞台)?
例如,在Dropbox或Chrome中:如果单击托盘图标,则会打开一个小窗口。如果您现在单击屏幕上的任意位置,窗口将关闭。这正是我想在JavaFX应用程序中创建的行为。
我已经搜索了很长时间才找到解决方案,但找不到一个...... 所以,我正在寻找类似的东西:
stage.addEventHandler(EventType.FOCUS_LOST, new EventHandler() { /*...*/ } );
谢谢你帮助我!
答案 0 :(得分:19)
向stage.focusedProperty()
添加一个监听器。
primaryStage.focusedProperty().addListener(new ChangeListener<Boolean>()
{
@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean onHidden, Boolean onShown)
{
<Your code here>
}
});