隐藏窗口时,javaFX弹出窗口保持在顶部
我的问题是,我希望我的弹出窗口要么关闭,要么不在顶部。 目前,当我点击一个与我的应用程序不同的窗口时,应用程序会消失在它后面,但弹出窗口会停留在顶部,位于属于不同应用程序的窗口前面 我想弹出窗口要么表现不同,要么作为黑客我想隐藏弹出窗口 我在stackoverflow的其他q&a中发现了这些侦听器,我尝试对这些侦听器执行此操作,但当我最小化窗口或使其失去焦点时,这些侦听器从未被调用 我注释掉了下面代码中不起作用的代码隐藏窗口时,javaFX弹出窗口保持在顶部,javafx,popup,focus,Javafx,Popup,Focus,我的问题是,我希望我的弹出窗口要么关闭,要么不在顶部。 目前,当我点击一个与我的应用程序不同的窗口时,应用程序会消失在它后面,但弹出窗口会停留在顶部,位于属于不同应用程序的窗口前面 我想弹出窗口要么表现不同,要么作为黑客我想隐藏弹出窗口 我在stackoverflow的其他q&a中发现了这些侦听器,我尝试对这些侦听器执行此操作,但当我最小化窗口或使其失去焦点时,这些侦听器从未被调用 我注释掉了下面代码中不起作用的代码 /* * (non-Javadoc) * * @see javafx.
/*
* (non-Javadoc)
*
* @see javafx.application.Application#start(javafx.stage.Stage)
*/
@Override
public void start(Stage primaryStage)
{
log.debug("JavaFx start method");
//log.trace("is used", fileViewController.toString());
try
{
splash.start(primaryStage, () -> startMain());
primaryStage.toFront();
//HACK attempt
//primaryStage.setAlwaysOnTop(false);
//FIXME: this doesn't work (is not called)
/*
primaryStage.iconifiedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
System.err.println("minimized:" + t1.booleanValue());
popupBuilder.hide();
popupPicker.hide();
popupAbout.hide();
popupExecute.hide();
popupAdministration.hide();
popupLicensegenerator.hide();
popupProjects.hide();
}
});
*/
/*
* This doesn't work, either
primaryStage.focusedProperty().addListener(new ChangeListener<Boolean>(){
@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean oldValue, Boolean newValue) {
System.err.println("focus:" + newValue);
if (!newValue){
popupBuilder.hide();
popupPicker.hide();
popupAbout.hide();
popupExecute.hide();
popupAdministration.hide();
popupLicensegenerator.hide();
popupProjects.hide();
}else{
//nothing
}
}
});
*/
}
catch (Exception e)
{
log.error("Error during start initialization of main application!");
e.printStackTrace();
System.exit(1);
}
/*
*(非Javadoc)
*
*@see javafx.application.application#start(javafx.stage.stage)
*/
@凌驾
公共无效开始(阶段primaryStage)
{
调试(“JavaFx启动方法”);
//log.trace(“已使用”,fileViewController.toString());
尝试
{
splash.start(初级阶段,()->startMain());
初级阶段toFront();
//黑客企图
//primaryStage.setAlwaysOnTop(假);
//FIXME:这不起作用(未调用)
/*
primaryStage.iconifiedProperty().addListener(新的ChangeListener()){
@凌驾
public void已更改(请注意),是否找到解决此问题的好方法?不,抱歉。我现在正在处理另一个项目。