Layout JavaFX平均分割子对象

Layout JavaFX平均分割子对象,layout,javafx-2,javafx-8,Layout,Javafx 2,Javafx 8,如何实现一个均匀分割的UI,如下面示例中的播放器框所示: 我会将其建模为具有两个大小相同的Vbox的HBox,但我无法使它们在HBox中拉伸到相同的大小。为HBox提供一个PrefWidth值。然后可以将VBox的宽度绑定到该宽度的一半 hBox.setPrefWidth(400); vbox.setPrefWidth(hbox.getPrefWidth()/2); 您可能想看看JavaFX场景生成器。在那里你可以设计你的布局。 使用拆分窗格也可以。在那里,可以将分割位置设置为0.5(如此居

如何实现一个均匀分割的UI,如下面示例中的播放器框所示:


我会将其建模为具有两个大小相同的Vbox的HBox,但我无法使它们在HBox中拉伸到相同的大小。

为HBox提供一个PrefWidth值。然后可以将VBox的宽度绑定到该宽度的一半

hBox.setPrefWidth(400);
vbox.setPrefWidth(hbox.getPrefWidth()/2);
您可能想看看JavaFX场景生成器。在那里你可以设计你的布局。
使用拆分窗格也可以。在那里,可以将分割位置设置为0.5(如此居中)。然后你可以把各种各样的窗格放在你喜欢的地方。

将两个
VBox
s放在a中,而不是一个
HBox

拉伸VBox,因为两个HBox的两半对我来说都适用
HBox.hgrow=“ALWAYS”
属性集:

<HBox>
  <VBox HBox.hgrow="ALWAYS">
    ...
  </VBox>
  <VBox HBox.hgrow="ALWAYS">
    ...
  </VBox>
</HBox>

...
...

发布一些您尝试的代码,然后我们可以找到错误@托比,我不知道如何让它们成长。只需在HBox中放置2个VBox,就可以使它们以最小的大小固定在左侧。尝试为它们指定一些宽度值HBox.setPrefWidth(400);vbox.setPrefWidth(hbox.getPrefWidth()/2)@Tobi您建议将宽度绑定到大小的一半吗?这肯定会奏效,但感觉有点强。难道没有一个解决方案只使用容器吗?我不太确定,但是你也可以使用setPrefWidth(Integer.MAX_VALUE),它们会占用尽可能多的空间,它们也不会用TilePane拉伸。它们的大小是一样的。发一些代码。您可能需要确保
TilePane
本身填充了可用空间,但除非您发布代码,否则无法提供帮助。