我正在Linux上的Java 11上使用JavaFX 11.0.1(openSUSE Tumbleweed 20190314上的KDE Plasma 5.12.2)创建一个Alert
对话框,该对话框应如下所示:
但是在大多数情况下,创建并显示Alert
时,它呈现得太小了,看起来像这样: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();
并且我还尝试通过添加以下内容来尝试this advice,以将大小强制设置为有用的值:
alert.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
alert.getDialogPane().setMinWidth(Region.USE_PREF_SIZE);
但这给出了完全相同的行为。 (请注意,即使为最小宽度和高度设置数值也不能解决问题。)
这是JavaFX 11中的已知错误吗?是否可以使用某些已知的解决方法来确保
Alert
对话框真正可读? 最佳答案
关于完全相同的问题,已经存在reported的已知问题,这会影响具有KDE的Linux。可以追溯到此bug,影响JavaFX 10和11。
该问题提供了一种可行的解决方法:
alert.setResizable(true);
alert.onShownProperty().addListener(e -> {
Platform.runLater(() -> alert.setResizable(false));
});
但这可能会使警报对话框可调整大小。