我正在使用FXML和JavaFX来开发图形界面。我发现这种方法可以将子节点的宽度/高度绑定到它父节点的宽度/高度:
<Node fx:id="parent">
<children>
<Node prefWidth=${parent.width}></Node>
<children>
</Node>
但这感觉不够优雅。我宁愿不必给节点一个id,因为它的孩子可以引用它的维度。是否有一些方法可以引用节点的parent
?也许像prefWidth=${parent.width}
?
注意:我知道这可以通过Java以编程方式完成,但这不是我想要的。我正在寻找一种在FXML中实现这一目标的方法。
答案 0 :(得分:9)
表达式绑定通过引用FXMLLoader
的{{3}}的元素来工作。没有“this
”的概念来引用“当前节点”(我知道)。因此,访问节点父节点的唯一方法是节点本身成为命名空间的一部分:您可以通过在节点本身上设置fx:id
来实现此目的:
<Pane>
<children>
<Node fx:id="node" prefWidth="${node.parent.width}"></Node>
<children>
</Pane>