加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 03:08:33 所属栏目:Java 来源:网络整理
导读:在Swing中,我们可以在JSplitPane上使用 setResizeWeight() 来确定SplitPane的哪个部分获得了可用空间. JavaFX 2.2中是否有等效的方法?我只能找到并不真正做我想要的setDividerPosition()方法(每次大小改变时我都可以手动调用它,但如果可能的话,我想避免这样
在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)的值,但两者之间绝对没有.基本上,节点可以是自由流动的或固定的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读