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
。
而不是使用InvalidationListener
a 使用 a javafx.beans.value.ChangeListener
。AChangeListener
是具有此方法的功能接口:
void changed\xe2\x80\x8b(ObservableValue<? extends T> observable, T oldValue, T newValue)\n
Run Code Online (Sandbox Code Playgroud)\n\n它为您提供旧值和新值以及ObservableValue
变化的来源。
由于 aDoubleProperty
是一个ObservableValue
(扩展Observable
),它有一个重载方法用于添加ChangeListener
: addListener(ChangeListener<? super T>)
。但请注意, aDoubleProperty
是 an ,这意味着和 的ObservableValue<Number>
类型将为。oldValue
newValue
Number
正如@Zephyr 在评论中指出的那样,我错过了您也在寻找两个值之间的差异这一事实。虽然现在您可以访问旧值和新值(正如您在评论中提到的那样),但这很简单,但为了完整性,我将在此处举一个示例/所以我完全回答了这个问题。
\n\nsomeDoubleProperty.addListener((observable, oldValue, newValue) -> {\n double diff = newValue.doubleValue() - oldValue.doubleValue();\n // Do something with "diff"...\n});\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
944 次 |
最近记录: |