JavaFX中的SplitPane上的setResizeWeight()的等价物?
在Swing中,我们可以使用JSplitPane上的setResizeWeight()
来确定SplitPane的哪部分接收到可用空间。 JavaFX 2.2中是否有等价的方法? 我只能找到setDividerPosition()
方法,它并没有真正做我想做的事情(每次大小改变时我都可以手动调用它,但如果可能,我想避免这种情况。)
我也可以调用setResizableWithParent(false)
,但是这并不能真正提供我所追求的那种控制。
在浏览SplitPane的API时,我发现了这个静态函数 - setResizableWithParent(root,Boolean.FALSE),它提供了与JSplitPane中setResizeWeight()
类似的功能。
SplitPane sp = new SplitPane();
final StackPane sp1 = new StackPane();
sp1.getChildren().add(new Button("Button One"));
final StackPane sp2 = new StackPane();
sp2.getChildren().add(new Button("Button Two"));
final StackPane sp3 = new StackPane();
sp3.getChildren().add(new Button("Button Three"));
sp.getItems().addAll(sp1, sp2, sp3);
sp.setDividerPositions(0.3f, 0.6f, 0.9f);
SplitPane.setResizableWithParent(sp1, Boolean.FALSE);
primaryStage.setScene(new Scene(sp, 300, 200));
primaryStage.setTitle("Welcome to JavaFX!");
primaryStage.sizeToScene();
primaryStage.show();
setResizableWithParent
可以模仿setResizeWeight(0)
和setResizeWeight(1)
的值,但它们之间完全没有关系。 基本上,节点可以是自由流动的或固定的。
上一篇: Equivalent of setResizeWeight() on SplitPane in JavaFX?