gpt4 book ai didi

java - 使 ScrollPane 适合其在 javafx 中的父级

转载 作者:行者123 更新时间:2023-11-29 04:34:40 26 4
gpt4 key购买 nike

我想调整 ScrollPane 的大小以适应其父容器。我测试了这段代码:

    @Override
public void start(Stage stage) throws Exception {

VBox vb = new VBox();
vb.setPrefSize(600, 600);
vb.setMaxSize(600, 600);

ScrollPane scrollPane = new ScrollPane();
scrollPane.setFitToHeight(false);
scrollPane.setFitToWidth(false);

scrollPane.setHbarPolicy(ScrollBarPolicy.AS_NEEDED);
scrollPane.setVbarPolicy(ScrollBarPolicy.AS_NEEDED);

VBox vb2 = new VBox();

vb.getChildren().add(scrollPane);
scrollPane.getChildren().add(vb2);

Scene scene = new Scene(vb);

stage.setScene(scene);
stage.show();
}

现在我想让 scrollPane 的宽度和高度与外部 VBox(vb) 相同。但是我失败了!有人可以帮帮我吗?

最佳答案

首先不要这样做:

vb.getChildren().add(vb);

将 VBox 'vb' 添加到自身将导致异常并且没有任何意义 :D

其次使用 AnchorPane 并像这样设置 ScrollPane 的约束:

//Create a new AnchorPane
AnchorPane anchorPane = new AnchorPane();

//Put the AnchorPane inside the VBox
vb.getChildren().add(anchorPane);

//Fill the AnchorPane with the ScrollPane and set the Anchors to 0.0
//That way the ScrollPane will take the full size of the Parent of
//the AnchorPane (here the VBox)
anchorPane.getChildren().add(scrollPane);
AnchorPane.setTopAnchor(scrollPane, 0.0);
AnchorPane.setBottomAnchor(scrollPane, 0.0);
AnchorPane.setLeftAnchor(scrollPane, 0.0);
AnchorPane.setRightAnchor(scrollPane, 0.0);
//Add content ScrollPane
scrollPane.getChildren().add(vb2);

关于java - 使 ScrollPane 适合其在 javafx 中的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42166865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com