繁体   English   中英

JavaFX:如果里面有项目,SplitPane会在调整大小时更改分隔符位置

[英]JavaFX: SplitPane changes divider position on resize if there are items inside

我有以下代码:

public class JavaFxApplication2 extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        SplitPane splitPane=new SplitPane();
        VBox vBox1=new VBox();
        vBox1.setStyle("-fx-background-color: red");
        VBox vBox2=new VBox();
        vBox2.setStyle("-fx-background-color: blue");
        splitPane.getItems().add(vBox1);
        splitPane.getItems().add(vBox2);
        splitPane.getDividers().get(0).setPosition(0);
        Scene scene=new Scene(splitPane, 200, 400);
        stage.setScene(scene);
        stage.show();
    }
}

这是我运行应用程序时的输出:
在此输入图像描述
现在我调整大小并使舞台更大:
在此输入图像描述
如您所见,分频器位置现在不是0.如何在调整大小时禁用分频器位置更改?

SplitPane包含的所有节点默认调整大小,因此“漫游分隔符”。

您可以使用setResizableWithParent来避免调整左侧VBox大小:

SplitPane.setResizableWithParent(vBox1, false);

在调整SplitPane大小时,将SplitPane中的节点设置为可调整大小。 默认情况下,所有节点都可调整大小 将值设置为false将阻止调整节点大小。

如果您不希望调整正确的VBox大小,则还必须为该节点调用此方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM