FXML 最小高度和最大宽度属性被忽略了吗?
FXML minHeight & minWidth attributs ignored?
如何为 window 设置最小尺寸?我尝试设置 minHeight
minWidth
值,但我仍然可以使用鼠标在该值下调整 Window 的大小。
这是我的 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>
为此,您必须设置 Stage
的 minHeight
和 minWidth
。
您的 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。
如何为 window 设置最小尺寸?我尝试设置 minHeight
minWidth
值,但我仍然可以使用鼠标在该值下调整 Window 的大小。
这是我的 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>
为此,您必须设置 Stage
的 minHeight
和 minWidth
。
您的 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。