FXML:将子宽度/高度绑定到父级宽度/高度的优雅方式

时间:2016-10-21 16:55:49

标签: javafx fxml

我正在使用FXML和JavaFX来开发图形界面。我发现这种方法可以将子节点的宽度/高度绑定到它父节点的宽度/高度:

<Node fx:id="parent">
    <children>
        <Node prefWidth=${parent.width}></Node>
    <children>
</Node>

但这感觉不够优雅。我宁愿不必给节点一个id,因为它的孩子可以引用它的维度。是否有一些方法可以引用节点的parent?也许像prefWidth=${parent.width}

注意:我知道这可以通过Java以编程方式完成,但这不是我想要的。我正在寻找一种在FXML中实现这一目标的方法。

1 个答案:

答案 0 :(得分:9)

表达式绑定通过引用FXMLLoader的{​​{3}}的元素来工作。没有“this”的概念来引用“当前节点”(我知道)。因此,访问节点父节点的唯一方法是节点本身成为命名空间的一部分:您可以通过在节点本身上设置fx:id来实现此目的:

<Pane>
    <children>
        <Node fx:id="node" prefWidth="${node.parent.width}"></Node>
    <children>
</Pane>
相关问题