gpt4 book ai didi

java - 使用 listener 和 DoubleProperty 获取变化量

转载 作者:行者123 更新时间:2023-11-30 06:44:11 24 4
gpt4 key购买 nike

给定一个添加到 DoubleProperty 的监听器,是否可以像使用 Observable 列表那样将 DoubleProperty 更改的数量传递给监听器?

someDoubleProperty.addListener(e -> {
// System.out.println(e.change());
});

最佳答案

我假设 DoubleProperty你是说 javafx.beans.property.DoubleProperty .

而不是使用 InvalidationListener使用 javafx.beans.value.ChangeListener . ChangeListener是这个方法的功能接口(interface):

void changed​(ObservableValue<? extends T> observable, T oldValue, T newValue)

它为您提供旧值和新值以及 ObservableValue这就是变化的来源。

DoubleProperty是一个 ObservableValue (它扩展了 Observable )它有一个用于添加 ChangeListener 的重载方法: addListener(ChangeListener<? super T>) .但是请注意,DoubleProperty是一个 ObservableValue<Number>这意味着 oldValue 的类型和 newValue将是 Number .


正如@Zephyr 在评论中指出的那样,我错过了您也在寻找两个值之间的差异这一事实。虽然这很简单,因为您可以访问旧值和新值(正如您在评论中提到的那样),但为了完整起见,我将在此处举一个示例/以便我完整地回答这个问题。

someDoubleProperty.addListener((observable, oldValue, newValue) -> {
double diff = newValue.doubleValue() - oldValue.doubleValue();
// Do something with "diff"...
});

关于java - 使用 listener 和 DoubleProperty 获取变化量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51032498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com