3

我正在使用 Linux 并尝试从 Oracle 的 JDK 切换到 OpenJDK 和 OpenJFX,但我在使用 JavaFX 应用程序时遇到了严重问题。

以这个简单的程序为例:

import javafx.application.Application;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.stage.Stage;

public class AlertTest2 extends Application {
    @Override
    public void start(final Stage primaryStage) throws Exception {
        final Alert alert = new Alert(AlertType.INFORMATION, "test alert");
        alert.setContentText("content goes here");
        alert.showAndWait();
    }

    public static void main(final String... args) {
        launch(args);
    }
}

如果我使用 Oracle JDK 版本 8 运行它,它工作得非常好并显示一个警告窗口。但是对于 OpenJDK 和 OpenJFX 版本 11,我得到的只是: 我还尝试了 ZuluFX 版本 8(包含 OpenJFX 的 OpenJDK 版本),它正常工作大约 8 次,其他时间如图所示切断警报对话框以上。
在此处输入图像描述

有没有其他人遇到过这个问题?可能是什么原因造成的,我该如何解决?

4

1 回答 1

3

经过一番挖掘,我发现了这个错误:https ://github.com/javafxports/openjdk-jfx/issues/222

这是一个似乎有帮助的解决方法(来自该页面):

alert.setResizable(true);
alert.setOnShown(ev -> Platform.runLater(() -> alert.setResizable(false)));
alert.showAndWait();
于 2019-05-07T00:06:36.550 回答