FXML minHeight & minWidth атрибуты игнорируются?

Как я могу установить минимальный размер моего окна? Я пытаюсь установить minHeightminWidth значение, но я все еще могу изменить размер окна под эти значения с помощью мыши.

Вот моя корневая панель FXML:

<BorderPane fx:id="borderPane"
        minHeight="200" minWidth="400" prefHeight="600" prefWidth="800"
        xmlns="http://javafx.com/javafx/null"
        xmlns:fx="http://javafx.com/fxml/1"
        fx:controller="simulation.Simulation_Controller">
</BorderPane>

2 ответа

Решение

Для этого вы должны установить minHeight а также minWidth вашей Stage,

Где-то в вашем коде Java...

Пример:

...
yourStage.setMinHeight(480);
yourStage.setMinWidth(640);
...

Вот простое, рабочее решение:

Parent root = FXMLLoader.load(getClass().getResource("/your/layout.fxml"));

stage.setMinWidth(root.minWidth(-1));
stage.setMinHeight(root.minHeight(-1));

Это устанавливает минимальный размер вашей сцены равным значениям, определенным в элементе верхнего уровня файла FXML, или 0, если они не определены.

Другие вопросы по тегам