我有2个组件:Label
& Button
。我想把它们并排放在一起。在CENTER中将它们对齐在一起。但我没有这样做,因为它们仍然是左对齐而不是中心。
我的代码如下:
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列的总宽度。
如何实现中心对齐?谢谢!
答案 0 :(得分:0)
您可以使用左侧和右侧的填充色列更新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
调整大小时,第一个和最后一个正在增长,2个内部列包含Label
和Button
。
请注意,Label
和Button
现已放入第二和第三列。