JavaFX 创建的警报对话框太小

Bob*_*ous 3 java alert javafx

我在 Linux 中的 Java 11 上使用 JavaFX 11.0.1(openSUSE Tumbleweed 20190314 上的 KDE Plasma 5.12.2)来创建一个如下所示的Alert对话框:

屏幕截图显示了预期的 JavaFX 警报对话框,该对话框足够大以显示文本和 OK 按钮。

但大多数情况下,当 anAlert被创建并显示时,它呈现的太小了,看起来像这样:

屏幕截图显示 JavaFX 警报对话框非常狭窄,其中唯一可见的是窗口图标的一半。

大约五分之一Alert将正确显示。但其余时间显示的是无用的小版本。

用于显示此对话框的代码没有什么异常:

Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Feature absent");
alert.setContentText(
    "Feature \"edit application settings\" has not been finished yet.");
alert.showAndWait();
Run Code Online (Sandbox Code Playgroud)

我也试过这个建议通过将下面的尝试规模迫使一些有用的东西:

alert.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
alert.getDialogPane().setMinWidth(Region.USE_PREF_SIZE);
Run Code Online (Sandbox Code Playgroud)

但这给出了完全相同的行为。(请注意,即使为最小宽度和高度设置数值仍然不能解决问题。)

这是 JavaFX 11 中的已知错误吗?是否有一些已知的解决方法可以用来确保Alert对话框实际上是可读的?

Jos*_*eda 7

已经针对完全相同的问题报告了一个已知问题,该问题影响带有 KDE 的 Linux。可以追溯到这个bug,影响了JavaFX 10和11。

该问题提供了一种有效的解决方法:

alert.setResizable(true);
alert.onShownProperty().addListener(e -> { 
    Platform.runLater(() -> alert.setResizable(false)); 
});
Run Code Online (Sandbox Code Playgroud)

但这可能会使警报对话框的大小可调整。