Автоматически c (нежелательно) изменить размер окна JavaFX на Debian? - PullRequest
1 голос
/ 25 мая 2020

Я заметил следующее поведение JavaFX при реализации приложения JavaFX:

public class Test extends Application {
    private static Stage innerStage;

    public static void main(String[] args) {
        launch(args);
        printSize(innerStage, "after closing the window");
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setWidth(300);
        primaryStage.setHeight(250);
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(event -> System.out.println("Hello World!"));

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 250, 200));
        primaryStage.show();
        primaryStage.setResizable(false);

        innerStage = primaryStage;
        printSize(primaryStage, "at start-up");
    }

    private static void printSize(Stage stage, String phase) {
        System.out.println(String.format("Width %s: %.1f", phase, stage.getWidth()));
        System.out.println(String.format("Height %s: %.1f", phase, stage.getHeight()));
    }
}

Первый вывод размера рабочей области дает:

Width at start-up: 300.0
Height at start-up: 250.0

, а второй дает:

Width after closing the window: 312.0
Height after closing the window: 284.0

Это происходит на Debian GNU/Linux 9.12 (stretch), но не на Windows 10.

Может ли кто-нибудь объяснить, что вызывает это, и сообщить мне, есть ли обходной путь для этого, например, этап ( window) не меняет размер сам по себе?

Спасибо

последующее редактирование: из того, что я видел, изменение размера происходит сразу после того, как метод start приложения JavaFX сделано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...