【发布时间】:2013-11-26 10:43:46
【问题描述】:
您好,我有一个只有一个阶段的 javafx 应用程序。在文本字段的选项卡按键事件中,应用程序的主要阶段显示一个弹出窗口。如下所示
private void tripNoKeyPressEventAction(KeyEvent event){
if(event.getCode() == KeyCode.TAB || event.getCode() == KeyCode.ENTER) {
popup.show(GateIn.primaryStage);
}
}
popup.requestFocus();
popup.focusedProperty().addListener(new ChangeListener<Boolean>
() {
@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
if(t1==false)
{
System.out.println("focus lost");
popup.hide();
}
}
});
我没有点击弹出窗口,也没有在弹出窗口中选择任何内容。我将单击它后面的舞台。我希望弹出窗口关闭,但在执行弹出窗口的focusedProperty 侦听器之前它给了我IllegalArgumentException。
如果弹出窗口在不同的阶段(除了应用程序的主要阶段),基于阶段focusedProperty()我可以隐藏弹出窗口。 如果弹出窗口显示在初级阶段,如何隐藏弹出窗口?
【问题讨论】: