Alw*_*elp 2 java properties listener java-8
给定一个添加到 DoubleProperty 的侦听器,是否可以像使用 Observable 列表一样将 DoubleProperty 更改的数量传递给侦听器?
someDoubleProperty.addListener(e -> {
// System.out.println(e.change());
});
Run Code Online (Sandbox Code Playgroud)
我假设DoubleProperty你的意思是javafx.beans.property.DoubleProperty。
而不是使用InvalidationListenera 使用 a javafx.beans.value.ChangeListener。AChangeListener是具有此方法的功能接口:
void changed\xe2\x80\x8b(ObservableValue<? extends T> observable, T oldValue, T newValue)\nRun Code Online (Sandbox Code Playgroud)\n\n它为您提供旧值和新值以及ObservableValue变化的来源。
由于 aDoubleProperty是一个ObservableValue(扩展Observable),它有一个重载方法用于添加ChangeListener: addListener(ChangeListener<? super T>)。但请注意, aDoubleProperty是 an ,这意味着和 的ObservableValue<Number>类型将为。oldValuenewValueNumber
正如@Zephyr 在评论中指出的那样,我错过了您也在寻找两个值之间的差异这一事实。虽然现在您可以访问旧值和新值(正如您在评论中提到的那样),但这很简单,但为了完整性,我将在此处举一个示例/所以我完全回答了这个问题。
\n\nsomeDoubleProperty.addListener((observable, oldValue, newValue) -> {\n double diff = newValue.doubleValue() - oldValue.doubleValue();\n // Do something with "diff"...\n});\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
944 次 |
| 最近记录: |