這是不可能做到這一點上使用約束一整排,但你可以使用GridPane.setHalignment
一排,其中優先ColumnConstraints
設置所有Node
S上的財產。
例
@Override
public void start(Stage primaryStage) {
Text text00 = new Text("text");
Text text01 = new Text("text");
Text text02 = new Text("text");
Text text10 = new Text("text");
Text text11 = new Text("text");
Text text12 = new Text("text");
GridPane gridPane = new GridPane();
ColumnConstraints cConstraints = new ColumnConstraints();
cConstraints.setHalignment(HPos.LEFT);
cConstraints.setHgrow(Priority.ALWAYS);
gridPane.getColumnConstraints().addAll(cConstraints, cConstraints);
gridPane.addColumn(0, text00, text01, text02);
gridPane.addColumn(1, text10, text11, text12);
GridPane.setHalignment(text11, HPos.CENTER);
GridPane.setHalignment(text01, HPos.CENTER);
Scene scene = new Scene(gridPane);
primaryStage.setScene(scene);
primaryStage.show();
}
請注意,您還可以在節點後,做到這一點已經通過孩子迭代添加到GridPane
:
int alignRow = 1;
for (Node n : gridPane.getChildren()) {
Integer row = GridPane.getRowIndex(n);
int rowNumber = row == null ? 0 : rowNumber.intValue();
if (rowNumber = alignRow) {
GridPane.setHalignment(n, HPos.CENTER);
}
}
[了JavaFx GridPane的可能的複製 - 如何以中心元素](http://stackoverflow.com/questions/12816075/javafx-gridpane-how-to-center-elements) – ItamarG3