首页 > 解决方案 > 更新具有相同值的 JavaFX 属性

问题描述

我想再次给 DoubleProperty 相同的值。或者,一个简单的更新会很好。不幸的是,如果这可能的话,我还没有找到一种可能性。

以下代码示例说明了我的意图:

import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;

public class Test {
    public static void main(String[] args) {
        DoubleProperty p = new SimpleDoubleProperty();
        p.addListener((obs_p, old_p, new_p) -> {
            System.out.println("Here, the value: " + new_p);
        });
    
        p.set(1);
        p.set(1);
    }
}

或看起来像这样的解决方案:

p.update() ...

总的来说,我希望收到以下输出:

Here, the value: 1.0
Here, the value: 1.0

但只输出一行。这样的方法是否存在?

标签: javajavafxproperties

解决方案


您可以扩展 SimpleDoubleProperty 并覆盖 set(double);

public class CustomDoubleProperty extends SimpleDoubleProperty {

    @Override
    public void set(double d) {
        super.set(d);
        System.out.println("set value: " + d);
    }
}

推荐阅读