FXML minHeight & minWidth атрибуты игнорируются?
Как я могу установить минимальный размер моего окна? Я пытаюсь установить minHeight
minWidth
значение, но я все еще могу изменить размер окна под эти значения с помощью мыши.
Вот моя корневая панель 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, если они не определены.