3

我习惯了 Swing,现在我开始使用 FX。我遇到了一个问题,我在阅读 Oracle 的“使用 JavaFX 中的布局”指南并在互联网上进行了一些研究时找不到答案。

在 GridPane 类的 FX API 指南中,有一个关于布局对象的示例:

这里是http://docs.oracle.com/javafx/2/api/javafx/scene/layout/GridPane.html的摘录: GridPane gridpane = new GridPane();

 // Set one constraint at a time...
 Button button = new Button();
 GridPane.setRowIndex(button, 1);
 GridPane.setColumnIndex(button, 2);

...

 // don't forget to add children to gridpane
 gridpane.getChildren().addAll(button, label);

通过 GridPane 的静态方法设置行和列信息。这也是文档所说的。我想了解此布局约束绑定到节点对象的位置 - 在本例中为按钮。

Node API 文档没有提到布局约束。我找到了很多关于设置约束的信息,例如为 GridPane 对象上的列设置约束,但我找不到关于此的更多信息。

那么如何将行/列信息绑定到按钮,或者在应用按钮后如何从按钮中检索此信息?

最好的毕业生

4

1 回答 1

3

通读 javaFX 源代码,GridPane的 setRowIndex 和 setColumnIndex 使用它的超类Pane的 setConstraint 方法,如下所示:

static void setConstraint(Node node, Object key, Object value) {
        if (value == null) {
            node.getProperties().remove(key);
        } else {
            node.getProperties().put(key, value);
        }
        if (node.getParent() != null) {
            node.getParent().requestLayout();
        }
    }

因此信息直接存储在节点中。

于 2013-06-17T08:20:18.000 回答