我有一个布局,其中有一个垂直拆分窗格,该窗格划分了两个组件。我想在拆分窗格的右边内部的组件(它是图像),但是在拆分窗口的左边的组件中,我希望保留在窗口的完全相同的位置,而分隔器在窗口的完全相同的位置被放大。
我试图将左侧的AnchorPane包裹在Vbox中,但似乎可以正常工作,除非调整窗口大小时,左侧的所有组件都向下移动。当我将其包装在HBox中时,也会发生这种情况。
我想不出解决此问题的最佳方法。我正在使用场景构建器,但对Javafx还是很陌生。有人可以帮忙吗?
谢谢!
最佳答案
在不能以相同的固定值增长的组件上调用setMinWidth
和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());
关于java - 防止SplitPane的一侧在javafx中调整大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21412912/