【发布时间】:2017-07-13 13:02:05
【问题描述】:
如果其中一个元素更改了其属性之一(更新事件),我可以使用提取器 (Callback<E, Observable[]> extractor) 来生成 ListProperty 触发更改事件。
Update Change Event in ObservableList
ObjectProperty<> 是否有等价物?我有一个SimpleObjectProperty,我想在它的值(另一种 bean 类型)的属性发生更改(更新更改事件)时触发事件。
示例代码:
public class TestBean {
public static <T extends TestBean> Callback<T, Observable[]> extractor() {
return (final T o) -> new Observable[] { o.testPropertyProperty() };
}
private final StringProperty testProperty = new SimpleStringProperty();
public final StringProperty testPropertyProperty() {
return this.testProperty;
}
public final String getTestProperty() {
return this.testPropertyProperty().get();
}
public final void setTestProperty(final String testProperty) {
this.testPropertyProperty().set(testProperty);
}
}
public class SomeType {
/**
* How can I listen for changes of TestBean#testProperty?
*/
private final ObjectProperty<TestBean> property = new SimpleObjectProperty<>();
}
如果SomeType#property 的值发生变化,我想接收更改事件,如果SomeType#property#testProperty 发生变化,我也想接收。
我不能只听SomeType#property#testProperty,因为当SomeType#property 更改时我不会收到通知(然后我会在错误的对象上侦听更改)。
【问题讨论】:
-
所以你想听一个
SimpleObjectProperty的值变化? -
我已经更新了问题,希望现在更清楚了。
标签: java javafx propertychangelistener