【问题标题】:`Alert` sometimes gives ridiculously small windows - how to fix this?`Alert` 有时会给出可笑的小窗口 - 如何解决这个问题?
【发布时间】:2018-09-26 17:13:54
【问题描述】:

这发生在 Oracle Java 10 以及 OpenJDK 10 和 11 以及来自 Linux 上的 Maven 的 OpenJFX 上。结果往往是这样的:

我试过setMinWidthsetMinHeight,但这些似乎根本没有区别。我的代码:

Alert alert = new Alert(AlertType/INFORMATION);
alert.setTitle("Testtitle");
alert.setContentText("Some example content text for an alert box.");
alert.getDialogPane.setMinHeight(Region.USE_PREF_SIZE);
alert.getDialogPane.setMinWidth(Region.USE_PREF_SIZE);
alert.showAndWait();

这是在 JavaFX 应用程序线程上运行的。

【问题讨论】:

  • 尝试使用 Oracle JDK8,根据我的经验 10 在 javafx 方面有点时髦。
  • 试试 alert.show() 看看它是否做同样的事情......

标签: java javafx openjfx


【解决方案1】:

对我来说,Alert#setResizabletrue 解决了这个问题

public class Test extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Scene scene = new Scene(new Label("Test"), 600, 400);

        stage.setScene(scene);
        stage.setOnCloseRequest(e -> {
            Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
            alert.initOwner(stage);
            alert.initModality(Modality.APPLICATION_MODAL);
            alert.setTitle("Exit");
            alert.setHeaderText(null);
            alert.setContentText("Do you want to exit?");
            alert.setResizable(true);
//            alert.getDialogPane().getScene().getWindow().sizeToScene();
            alert.showAndWait();
        });

        stage.setTitle("TestApp");
        stage.show();
    }

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

}

openjdk 版本“11” 2018-09-25
OpenJDK 运行时环境 18.9(内部版本 11+28)
OpenJDK 64-Bit Server VM 18.9(build 11+28,混合模式)

OpenJFX 11

分销商 ID:Ubuntu
说明:Ubuntu 18.04.1 LTS
发布时间:18.04
代号:仿生

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2017-09-12
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    相关资源
    最近更新 更多