当前位置: 首页 > 知识库问答 >
问题:

如果所有者最小化,Javafx对话框(警报)不可见

雷锋
2023-03-14
public class JavaFxSample2 extends Application {

@Override
public void start(Stage primaryStage) throws InterruptedException, ExecutionException {
    primaryStage.setTitle("open alert in 2 seconds");
    Pane pane = new Pane();
    Button b = new Button("open dialog");
    b.setOnMouseClicked(event -> {
        Task<Void> task = new Task<Void>() {
            @Override
            protected Void call() throws Exception {
                Thread.sleep(2000);
                return null;
            }
        };
        task.stateProperty().addListener((observable, oldValue, newValue) -> {
            if (newValue == State.SUCCEEDED) {
                Alert alert = new Alert(AlertType.INFORMATION, "Hello");
                alert.initOwner(primaryStage);                  
                alert.showAndWait();
            }
        });
        Thread thread = new Thread(task);
        thread.start();
    });

    pane.getChildren().add(b);

    Scene scene = new Scene(pane, 300, 275);
    primaryStage.setScene(scene);
    primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
}
}

共有1个答案

楚嘉纳
2023-03-14

找到(可能的)解决办法。但这真的是一个好的解决方案吗?

在显示警报之前,我执行以下行:

((Stage) alert.getOwner()).setIconified(false);

如果有人有更好的主意,我会删除我的答案。

 类似资料:
  • 我正在使用新的JavaFX Alert类(Java1.8_40),并尝试在exibition文本中使用HTML标记,但到目前为止还没有成功。下面是我正在尝试做的一个例子。 有没有人知道这是不是真的可能,给我举个例子? 提前道谢。

  • 我在antoher的项目中有完全相同的代码,但它在这里继续崩溃。我有。我真的不确定问题出在哪里。我尝试过切换gradle版本,从切换到。不管怎样,一切都失败了

  • 编辑:包括示例代码- > mainapp.Java-负责处理应用程序的Java类 controller.java-相应的控制器文件 design.FXML-通过mainapp.java加载并由controller.java控制的应用程序的FXML文件 compute.java-执行计算的另一个java类。 公共类Compute{Alert Alert; } 还有,有没有其他的解决方案可以做到这一点

  • 问题内容: 是否有本地化JavaFX FileChooser对话框的选项?在Swing中,JFileChooser的本地化非常简单(超过)。但是我在JavaFX中找不到类似的功能。 问题答案: 我认为你不能。从Javadocs: 提供对标准平台文件对话框的支持。这些对话框具有独立于JavaFX的平台UI组件的外观。 由于这些是本机“文件选择器”对话框,因此其中显示的文本将由平台的语言环境控制(即,

  • 最近我从支持库切换到com.google.android.Material:Material:1.0.0 但是现在我遇到了一个问题,在这个页面中有一个注释https://github.com/Material-Components/Material-Components-android/blob/master/docs/geting-started.md 注意:使用Material Compone

  • 标记的答案使我走上了正确的轨道。