在JavaFX中,布局的属性可通过舞台更改其高度和宽度

时间:2018-09-03 17:01:42

标签: javafx

我已经在SceneBuilder中创建了Scene,并希望使用一个属性来更改子布局的高度和父项的高度和宽度。我已经在控制器类中使用绑定完成了它。但是,将绑定应用于每个子布局和控制器非常耗时。因此,我需要一个属性或属性组合来帮助我节省编码的时间和精力。我有一个简单的示例,可以将您的HBox放在VBox中。

当我在SceneBuilder中进行设计时:

enter image description here

当我将其全屏显示时:

enter image description here

1 个答案:

答案 0 :(得分:1)

这取决于父布局。对于每种可能的布局,没有通用的方法可以做到这一点。

对于VBox,您应该使用VBox.vgrow(将所有子项都设置为Priority.SOMETIMES)和VBox的{​​{1}}属性,但是对于fillWidth,对于Pane,将需要您设置锚点,对于AnchorPane / GridPane的{​​{1}}列/行约束或可以使用增长优先级。 ..

percentWidth / percentHeight的示例

VBox

创建绑定的替代方法

您可以使用表达式绑定来创建某些绑定。参见https://docs.oracle.com/javase/10/docs/api/javafx/fxml/doc-files/introduction_to_fxml.html#expression_binding

HBox

请注意,如果您使用此方法,SceneBuilder将显示警告,并且不会正确显示预览。