窗口/舞台失去焦点时的事件

13

当JavaFX舞台失去焦点时,我如何运行一段代码(更确切地说是关闭窗口)?

例如在Dropbox或Chrome中:如果单击托盘图标,会打开一个小窗口。现在,如果您在屏幕上的任何位置单击,窗口将关闭。这正是我想在我的JavaFX应用程序中创建的行为。

我已经搜索了很长时间,但找不到解决方案...
所以,我正在寻找类似于以下内容的东西:

stage.addEventHandler(EventType.FOCUS_LOST, new EventHandler() { /*...*/ } );


谢谢你帮助我!

1个回答

25

stage.focusedProperty() 添加监听器。

primaryStage.focusedProperty().addListener(new ChangeListener<Boolean>()
{
  @Override
  public void changed(ObservableValue<? extends Boolean> ov, Boolean onHidden, Boolean onShown)
  {
    <Your code here>
  }
});

1
只是一个提示:t是旧值,t1是新值。因此,在这种情况下,t代表onHiddent1代表onShown - Enigo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接