窗口/舞台失去焦点时的事件
Posted
技术标签:
【中文标题】窗口/舞台失去焦点时的事件【英文标题】:Event when window/stage lost focus 【发布时间】:2014-07-25 04:40:47 【问题描述】:当 JavaFX 阶段失去焦点时,我如何运行一段代码(或更准确地说:关闭阶段)?
例如在 Dropbox 或 Chrome 中:如果您单击托盘图标,则会打开一个小窗口。如果您现在单击屏幕上的任意位置,窗口将关闭。这正是我想在我的 JavaFX 应用程序中创建的行为。
我已经搜索了很长时间的解决方案,但找不到... 所以,我正在寻找这样的东西:
stage.addEventHandler(EventType.FOCUS_LOST, new EventHandler() /*...*/ );
感谢您帮助我!
【问题讨论】:
【参考方案1】:给stage.focusedProperty()
添加一个监听器。
primaryStage.focusedProperty().addListener(new ChangeListener<Boolean>()
@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean onHidden, Boolean onShown)
<Your code here>
);
【讨论】:
请注意:t
是旧值,t1
是新值。所以,对于这种情况,t
代表onHidden
,t1
- onShown
以上是关于窗口/舞台失去焦点时的事件的主要内容,如果未能解决你的问题,请参考以下文章