public CheckBox createBox(){
CheckBox box = new CheckBox();
box.setText(name);
box.setOnMouseClicked(x -> handlePlaying(box));
return box;
}
而不是将它们添加到GridPane
checkBoxes
.forEach(x -> gridPane.add(x, checkBoxes.indexOf(x) + 1, 2));
现在我想更改Halignment,但我无法找到该方法。
PS:我想改变Halignement而不是一般的Alignement;
答案 0 :(得分:0)
我相信这个例子说明了Labelled.setAlignment()和GridPane.setHAlignment()之间的区别。
代码
@Override
public void start(Stage primaryStage) throws Exception {
GridPane grid = new GridPane();
CheckBox box1 = new CheckBox("horse");
box1.setMinWidth(200);
box1.setAlignment(Pos.CENTER_RIGHT);
grid.getChildren().add(box1);
CheckBox box2 = new CheckBox("banana");
grid.getChildren().add(box2);
GridPane.setRowIndex(box2, 1);
GridPane.setHalignment(box2, HPos.RIGHT); // <=== this is probably what you want
primaryStage.setScene(new Scene(grid));
primaryStage.show();
}
我推荐使用FXML而不是程序化布局,但同样适用原则。在SceneBuilder中的Layout选项卡中找到HAlignment属性...
Labelled.setAlignment()确实在JavaDoc中解释了这一点,虽然我可以看出为什么这可能会让人感到困惑。
指定Labeled中的文本和图形应该如何 当Labeled中有空的空格时对齐。