【问题标题】:Blink application icon in taskbar when javafx modal dialog loses focus当 javafx 模态对话框失去焦点时,在任务栏中闪烁应用程序图标
【发布时间】:2017-01-23 12:54:11
【问题描述】:

我正在开发 netbeans 平台应用程序。我有一个带有按钮的主窗口。单击该按钮后,将打开一个 Javafx 模式对话框(阶段)。

现在,当用户单击任何控件时,例如:主窗口中的文本字段,模式对话框位于主窗口后面。如果是这种行为,我想在对话框失去焦点时突出显示(闪烁)任务栏中的应用程序图标.请帮忙!谢谢

代码:

            final Stage dialogStage = new Stage();
            Scene scene = new Scene(fxmlUi);
            dialogStage.focusedProperty().addListener(new ChangeListener<Boolean>() {
            boolean atFirst = false;
      @Override
            public void changed(ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue) {
                if (!newPropertyValue) {
                    dialogStage.setIconified(true);
                    dialogStage.hide();
                }
                if (!atFirst) {
                    atFirst = true;
                    dialogStage.show();
                } else {
                    dialogStage.setIconified(true);
                    dialogStage.show();
                }
            }
        });
        dialogStage.setScene(scene);
        dialogStage.initModality(Modality.APPLICATION_MODAL);
        dialogStage.setResizable(true);
        dialogStage.centerOnScreen();
        dialogStage.showAndWait();

【问题讨论】:

  • 你能贴一些你试过的代码吗?
  • @jhhoff02 我已经添加了代码。我尝试过让应用程序图标闪烁。谢谢!
  • 您可以使用primaryStage或mainStage设置dialogStage的initOwner方法。它就像:dialogStage.initOwner(mainStage)。请检查“MBec”答案。

标签: javafx


【解决方案1】:

将您的Stage 设置为模态对话框的所有者,然后对话框将始终位于Stage 之上。

dialog.initOwner(stage);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    相关资源
    最近更新 更多