JavaFX中SplitPane上的setResizeWeight()的等价物?

Mic*_*rry 7 javafx javafx-2 splitpane

在Swing中,我们可以使用setResizeWeight()JSplitPane来确定SplitPane的哪个部分获得了可用空间.JavaFX 2.2中是否有等效的方法?我只能找到setDividerPosition()并不真正做我想要的方法(我可以在每次大小改变时手动调用它,但是如果可能的话我想避免这种情况.)

我也可以打电话setResizableWithParent(false),但这又不能真正提供我所追求的那种控制.

Avi*_*vik 4

在查看 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();
Run Code Online (Sandbox Code Playgroud)

setResizableWithParentsetResizeWeight(0)可以模仿和的值setResizeWeight(1),但绝对不能模仿两者之间的值。基本上,节点可以是自由流动的,也可以是固定的。