如何在fxml中设置容器的最小大小

时间:2016-03-08 09:59:36

标签: resize fxml

我正在尝试使用javafx并且已经为我的界面创建了一个fxml。

但是现在,我的窗格大小有问题。

<VBox minHeight="200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">

例如在我的VBox和他们的孩子们中我指定了一个minHeight。但是当应用程序运行时,我可以让我的盒子小于200p,我不明白为什么。我如何正确设置最小高度或者是什么?

由于

1 个答案:

答案 0 :(得分:2)

当您将可调整大小的窗格作为场景的根(可能是您的情况)时,最小尺寸将按预期用于JavaFX 中的所有内容(除外)。

如果要调整封闭阶段的大小,您希望根据最小大小使根不会变小,您可以尝试以下方法之一:

:一种。设置舞台的最小尺寸

stage.setMinWidth(200);
stage.setMinHeight(200);

如有必要,您可以根据舞台装饰的大小调整最小高度和宽度值。

OR

<强> B中。将ScrollPane定义为场景的根

ScrollPane scrollPane = new ScrollPane(content);
scrollPane.setMinViewportWidth(200);
scrollPane.setMinViewportHeight(200);
Scene scene = new Scene(scrollPane);

旁白:

可以认为,根据场景根的最小尺寸不执行阶段最小尺寸的行为是错误的&#34;。也许约束可以由桌面系统上的JavaFX系统强制执行,但是以直观的方式这样做很难,因为通常人们不希望封闭窗口具有最小尺寸。在移动开发中,主要阶段通常全屏显示到设备。这使得基于场景根最小尺寸的约束阶段大小很难实现,因为除了用户动作(例如调整主应用程序窗口的大小)之外,场景根的大小实际上由OS限制和偏好控制。