【问题标题】:JavaFx Fill WidthColumn Constraint is not working inside a layoutJavaFx Fill WidthColumn Constraint 在布局内不起作用
【发布时间】:2016-12-13 17:45:20
【问题描述】:

我将在 Java FX GridPane 布局的一行中添加两个文本字段。我想在整个可用空间中填充一个文本字段。如果我将 GridPane 直接添加到场景中,那么它工作正常。但如果我将 GridPane 添加到另一个布局,如 Group(或任何其他布局),则填充属性无法正常工作。

以下代码按预期工作。

public void start(final Stage stage) {
    GridPane parent = new GridPane();
    TextField addEmail = new TextField();
    TextField addFirstName = new TextField();
    parent.add(addEmail, 0, 0);
    parent.add(addFirstName, 1, 0);

    ColumnConstraints cons1 = new ColumnConstraints();
    cons1.setFillWidth(true);
    cons1.setHgrow(Priority.ALWAYS);

    parent.getColumnConstraints().add(cons1);

    Scene scene = new Scene(parent, 400, 300, Color.WHITE);
    stage.setScene(scene);
    stage.show();
}

跟随一个不工作(但我想让这个工作)。

public void start(final Stage stage) {
        GridPane parent = new GridPane();
        TextField addEmail = new TextField();
        TextField addFirstName = new TextField();
        parent.add(addEmail, 0, 0);
        parent.add(addFirstName, 1, 0);

        ColumnConstraints cons1 = new ColumnConstraints();
        cons1.setFillWidth(true);
        cons1.setHgrow(Priority.ALWAYS);

        parent.getColumnConstraints().add(cons1);

        Group group = new Group();
        group.getChildren().addAll(parent);
        Scene scene = new Scene(group, 400, 300, Color.WHITE);        
        stage.setScene(scene);
        stage.show();
    }

我是 Java FX 的新手,因此我的方法可能完全错误,请引导我找到正确的路径。

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    抱歉,您选错了家长。

    来自the javadoc of Group:

    默认情况下,Group“自动调整大小” 将其托管的可调整大小的子项调整为首选大小 在布局过程中确保 Regions 和 Controls 在其状态更改时调整大小。

    Group 只是不修改其子项的大小,而是将它们调整为首选大小。

    仅当您将 GridPane 放在调整其大小的父级中时,例如StackPane,修改了大小...

    【讨论】:

    • 哦,谢谢 fabian,我也尝试了锚窗格和滚动窗格。根据您的回答,同样的情况也适用于这些布局,对吧?
    • @NishanSenevirathna 完全取决于布局参数,例如尝试AnchorPaneGridPane 设置左右锚点或ScrollPanefitToWidth= true
    • 非常感谢 Fabian 的帮助。 FitToWidth 适用于 ScrollPane。你拯救了我的一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多