本文介绍了AnchorPane约束百分比的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开展一个项目,我需要你的帮助。

我想知道这可以设置百分比中的锚定约束

I am working on a project and I need you help.
I want to know that is this possible to set anchorpane constraints in percentage as something like

AnchorPane.setLeftAnchor(content1, 35%);


推荐答案

是的,可以通过更新每个场景上的约束值大小变化:

Yes it can be by updating constraint values on every scene size change:

public class AnchorDemo extends Application {

    private final Button button = new Button("Add");
    private final ListView list = new ListView();

    @Override
    public void start(Stage primaryStage) {

        AnchorPane root = new AnchorPane();
        AnchorPane.setTopAnchor(list, 10.0);
        AnchorPane.setLeftAnchor(list, 10.0);
        AnchorPane.setTopAnchor(button, 10.0);
        AnchorPane.setRightAnchor(button, 10.0);
        root.getChildren().addAll(list, button);

        Scene scene = new Scene(root, 300, 250);

        scene.widthProperty().addListener(new ChangeListener<Number>() {

            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                updateWidthConstaints(newValue.doubleValue());
            }
        });

        primaryStage.setScene(scene);
        primaryStage.show();

        updateWidthConstaints(scene.getWidth());
    }

    private void updateWidthConstaints(double width) {
        // roughly give to the list 66% while to the button 33% of available
        // space, besides paddings.
        // +5s are for extra padding
        AnchorPane.setRightAnchor(list, width * 1 / 3 + 5);
        AnchorPane.setLeftAnchor(button, width * 2 / 3 + 5);
    }

    public static void main(String[] args) {
        launch(args);
    }

}

这篇关于AnchorPane约束百分比的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-06 05:08