gpt4 book ai didi

JavaFX 如何并排居中多个组件

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:19 25 4
gpt4 key购买 nike

我有 2 个组件:LabelButton。我想将它们并排放置并在中心对齐。但我没有这样做,因为它们仍然向左对齐,而不是中心对齐。

enter image description here

我的代码如下:

Label sloganLbl = new Label("With cost as low as $1.99, you can own a fraction share of U.S. stock. No account yet?");
sloganLbl.getStyleClass().add("blue-small-font");


Button signUpBtn = new Button("Open account now");
signUpBtn.getStyleClass().add("green-btn-small-font");

GridPane topGrid = new GridPane();

topGrid.setHgap(20);
topGrid.add(sloganLbl, 0, 0);
topGrid.add(signUpBtn, 1, 0);
topGrid.setGridLinesVisible(true);

GridPane.setHalignment(sloganLbl, HPos.RIGHT);
GridPane.setHalignment(signUpBtn, HPos.LEFT);

BorderPane topBorder = new BorderPane();
topBorder.setPadding(new Insets(15, 10, 15, 10));
topBorder.setCenter(topGrid);

topBorder.getStyleClass().add("blue-small-font");
topGrid.getStyleClass().add("blue-small-font");

borderPane.setTop(topBorder);

问题是 topBorder.setCenter(topGrid); 无法将内容居中。似乎 topGrid 占据了整个宽度,而不仅仅是其 2 列的总宽度。

如何实现居中对齐?谢谢!

最佳答案

您可以使用左侧和右侧的间隙填充列来更新 GridPane

ColumnConstraints leftFiller = new ColumnConstraints();
leftFiller.setHgrow(Priority.ALWAYS); // Fills the space left on the left side
ColumnConstraints rightFiller = new ColumnConstraints();
rightFiller.setHgrow(Priority.ALWAYS); // Fills the space left on the right side
topGrid.getColumnConstraints().addAll(leftFiller, new ColumnConstraints(),
new ColumnConstraints(), rightFiller);

topGrid.add(sloganLbl, 1, 0);
topGrid.add(signUpBtn, 2, 0);

此代码段将创建一个包含 4 列的 GridPane。当 GridPane 调整大小时,第一个和最后一个会增长,两个内部列包含 LabelButton

请注意,LabelButton 现在已放置在第二列和第三列中。

关于JavaFX 如何并排居中多个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41804292/

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