一旦添加新的孩子,JavaFX便将孩子的财产绑定到其父母的财产

莫阿

我有一个Pane可缩放的。我想Pane分别扩大所有孩子的人数可以动态添加子项,因此我想在添加新子项后将子项的scale属性绑定到其父项的scale属性,但是我不知道该怎么做。

窗格缩放后,我目前会缩放所有子级:

public class ZoomableCanvas extends Pane {

    DoubleProperty scale = new SimpleDoubleProperty(1.0);

    public ZoomableCanvas() {
        scaleXProperty().bind(scale);
        scaleYProperty().bind(scale);
    }

    public double getScale() {
        return scale.get();
    }

    public void setScale(double scale) {
        this.scale.set(scale);
        for (javafx.scene.Node child : getChildren()) {
            child.setScaleX(scale);
            child.setScaleY(scale);
        }
    }

    public void setPivot(double x, double y) {
        setTranslateX(getTranslateX() - x);
        setTranslateY(getTranslateY() - y);
    }
}

但是必须有一种更优雅的方法。如何侦听子项的添加,然后绑定该属性?

詹姆斯·D

只要观察孩子的名单:

public class ZoomableCanvas extends Pane {

    DoubleProperty scale = new SimpleDoubleProperty(1.0);

    public ZoomableCanvas() {
        scaleXProperty().bind(scale);
        scaleYProperty().bind(scale);

        getChildren().addListener((Change<? extends Node> c) -> {
            while (c.next()) {
                if (c.wasAdded()) {
                    for (Node child : c.getAddedSubList()) {
                        child.scaleXProperty().bind(scale);
                        child.scaleYProperty().bind(scale);
                    }
                }
                if (c.wasRemoved()) {
                    for (Node child : c.getRemoved()) {
                        child.scaleXProperty().unbind();
                        child.scaleYProperty().unbind();
                    }
                }
            }
        });
    }

    public double getScale() {
        return scale.get();
    }

    public void setScale(double scale) {
        this.scale.set(scale);
    }

    public void setPivot(double x, double y) {
        setTranslateX(getTranslateX() - x);
        setTranslateY(getTranslateY() - y);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将孩子绑定到父母

来自分类Dev

如何从孩子那里获得父母的财产?

来自分类Dev

根据父母集合中的孩子计算的财产

来自分类Dev

根据孩子的状况递归删除“父母”财产

来自分类Dev

如何从孩子那里获得父母的财产?

来自分类Dev

根据父母集合中的孩子计算的财产

来自分类Dev

父母poms可以从孩子那里获得财产吗?

来自分类Dev

我可以使用Eloquent通过父母的财产订购一批孩子吗?

来自分类Dev

孩子一旦从父母中移出后不会再出现

来自分类Dev

让孩子修改其父母

来自分类Dev

教义(Symfony)中的外键。如何将新孩子绑定到已经存在的父母?

来自分类Dev

使用超阶级的孩子的财产

来自分类Dev

如何动态访问孩子的财产?

来自分类Dev

从父母到孩子的动态道具绑定

来自分类Dev

如何按父母分组并收集gremlin中孩子的所有财产价值?

来自分类Dev

Linq按父财产分组(按孩子)

来自分类Dev

如何在CSS中继承孩子的财产?

来自分类Dev

将父母与孩子一起休眠

来自分类Dev

将孩子抛弃给父母

来自分类Dev

将孩子绑定到父母共享的模型的正确方法是什么?

来自分类Dev

ReactJS-孩子如何找到其父母?

来自分类Dev

ReactJS-孩子如何找到其父母?

来自分类Dev

将一个孩子的改变传达给父母的父母

来自分类Dev

MeasureOverride并不总是针对孩子的财产变更而调用

来自分类Dev

将最后一个孩子扩展到父母的底部

来自分类Dev

将道具从孩子传递到父母(无上下文)

来自分类Dev

Titlepane的孩子将父母推迟

来自分类Dev

将孩子交给父母好吗?

来自分类Dev

React更新一个孩子的父母身份,并将更新后的值传递给新孩子

Related 相关文章

热门标签

归档