OpenJFX斩波对话框窗口

时间:2019-05-06 22:48:34

标签: java javafx openjfx

我正在使用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,我只能得到的是:
enter image description here
我还尝试了ZuluFX版本8(包含OpenJFX的OpenJDK构建),它可以正常工作约8次,而其他时候会切碎警告对话框,如上所示。

还有其他人遇到过这个问题吗?可能是什么原因导致的,我该如何解决?

1 个答案:

答案 0 :(得分:3)

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

(该页面上的)以下变通方法似乎有所帮助:

alert.setResizable(true);
alert.setOnShown(ev -> Platform.runLater(() -> alert.setResizable(false)));
alert.showAndWait();