我习惯了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
答案 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();
}
}
因此信息直接存储在节点中。