java fx:使用GridPane.setRowIndex(...)时保存的约束属性在哪里;

时间:2013-06-16 19:03:05

标签: java layout javafx-2 constraints gridpanel

我习惯了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 doc未提及布局约束。 我发现了很多关于设置约束的信息,例如GridPane对象上的列,但我找不到关于此的更多信息。

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

最好的regrads GUENTER

1 个答案:

答案 0 :(得分:2)

通过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();
        }
    }

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