2

我有一个布局,其中有一个垂直拆分窗格,它划分了两个组件。我想要增长的拆分窗格右侧的组件(它是一个图像),但是拆分窗格左侧的组件我想保持在完全相同的位置,当窗口时分隔器在完全相同的位置被放大。

我试图将左侧 AnchorPane 包装在 Vbox 中,它似乎可以工作,除非调整窗口大小时左侧的所有组件都向下移动。当我将它包装在 HBox 中时也会发生这种情况。

我想不出解决这个问题的最佳方法。我正在使用场景构建器,但我对 Javafx 还是很陌生。任何人都可以帮忙吗?

谢谢!

4

1 回答 1

7

在不能以相同的固定值增长的组件上调用setMinWidthand将阻止用户更改分隔线位置。setMaxWidth

因此,例如,假设您希望100左侧组件的最大尺寸为 ,代码可以是:

SplitPane pane = new SplitPane();

double leftComponentSize = 100.0;
VBox leftComponent = new VBox();
// Set the min and max width to a fixed size
leftComponent.setMinWidth(leftComponentSize);
leftComponent.setMaxWidth(leftComponentSize);
...
pane.getItems().addAll(leftComponent, rightComponent);
// Initialize the divider positions to allocate the expected size 
// to the left component according to the size of the window
pane.setDividerPositions(leftComponentSize / stage.getScene().getWidth());
于 2015-11-23T11:13:31.760 回答