java - 更新具有相同值的 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
但只输出一行。这样的方法是否存在?
解决方案
您可以扩展 SimpleDoubleProperty 并覆盖 set(double);
public class CustomDoubleProperty extends SimpleDoubleProperty {
@Override
public void set(double d) {
super.set(d);
System.out.println("set value: " + d);
}
}
推荐阅读
- python-3.x - 是否可以在 kivy webiew 中与 javascript 和 python 交互?
- python - AttributeError:“NoneType”对象没有属性“tokenize”
- python - 在 Python 上扩展缩短 URL 的更快方法
- android - HorizontalScrollView 以编程方式滚动而没有焦点
- loops - 在 while 循环中忽略“else”选项替代
- php - Woocommerce 基于复选框添加费用
- .net - DOTNET 中用于 Unicode 脚本检测的 Character.UnicodeScript 等效性
- c# - EF手动/动态表注册
- javascript - 控制台说我的一个功能不是Vue3 + Firebase中的功能
- docker - iptables 在 PREROUTING 链的末尾默默地丢弃带有 docker DNAT 的数据包,而不是继续 INPUT 链