绑定编译但不会被调用

时间:2013-01-14 23:10:55

标签: java bind javafx

我正在尝试将我的print方法绑定到xProperty()(print().bind(scene.xProperty());)。它运行一次,但是当调用xProperty时,我的方法不再被调用。如何让它多次拨打电话。

public DoubleProperty print(){
    System.out.println("print");
    DoubleProperty dp = new DoubleProperty(){
        public void removeListener(ChangeListener cl){}
        public void removeListener(InvalidationListener cl){}
        public void addListener(ChangeListener cl){}
        public void addListener(InvalidationListener cl){}
        public double get(){return 10;}
        public String getName(){return "";}
        public Object getBean(){return new Object();}
        public boolean isBound(){return true;}
        public void unbind(){}
        public void bind(ObservableValue observable){}
        public void set(double d){}
    };
    return dp;

}

1 个答案:

答案 0 :(得分:0)

我不确定你到底在找什么,但不是从头开始实现你自己的DoubleProperty(例如,你的实现缺少对听众的正确处理)我建议使用SimpleDoubleProperty作为基

例如:

public class Bean {
    private DoubleProperty print;
    public DoubleProperty printProperty(){
        if (print == null)
            print = new SimpleDoubleProperty(this, "print");
        return print;
    }
 }

现在,您可以绑定到print属性并在其上注册您自己的侦听器。