0

我正在尝试将我的打印方法绑定到 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;

}
4

1 回答 1

0

我不确定您在此处寻找的确切内容,但与其从头开始实现您自己的 DoubleProperty(例如,您的实现缺少对侦听器的正确处理),我建议您使用SimpleDoubleProperty作为基础。

例如:

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

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

于 2013-01-15T03:06:44.813 回答