Javafx更改组件的对齐方式

标签 java javafx java-8 alignment fxml

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:我想更改对齐方式而不是一般对齐方式;

最佳答案

我相信这个例子说明了 Labelled.setAlignment() 和 GridPane.setHAlignment() 之间的区别。

alignment

代码

@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 的“布局”选项卡中找到 HAlignment 属性...

Labeled.setAlignment() 确实在其 JavaDoc 中解释了这一点,尽管我可以理解为什么这可能会令人困惑。

Specifies how the text and graphic within the Labeled should be aligned when there is empty space within the Labeled.

关于Javafx更改组件的对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40833961/

相关文章:

Java 字符串删除标记包含数字

java - 如何将值绑定(bind)到 ObservableList 的大小?

java - 使用 Java FX 在服务器端生成图像

java - 动态生成 Java 类并添加到类路径

lambda - 为什么Java 8中的lambda不允许对匿名类不允许的成员变量进行前向引用?

java - 导出 dll 进行部署时出现 UnsatisfiedLinkError

java - 它说必须调用looper.prepare

java - 在javafx中沿X轴旋转滚动 Pane - 类似星球大战的效果

java - 在java中按多个字段过滤的最佳方法是什么

java - JPQL:如何使用 where 子句实现与集合成员声明相同的功能?