当 observableList 中名为 EventShowable 的对象被修改时,我想触发一些代码。
这是我的代码。
mainApp.getCalendars().get(i).getListEvents().addListener(new ListChangeListener<EventShowable>() {
@Override
public void onChanged(ListChangeListener.Change<? extends EventShowable> c) {
while (c.next()) {
if (c.wasUpdated()) {
//this doesn't work.
//perform updated
}
if (c.wasAdded()){
//perform something }
wasAdded() 表现良好,但 wasUpdate() 则不然。
当 EventShowable 被修改时,如何获得有效的东西?谢谢
P.S:在 JavaDoc 中:
公共布尔值 wasUpdated()
指示 getFrom()(含)到 getTo()(排除)之间的元素已更改。这是唯一可选的事件类型,可能不会被所有 ObservableList 触发。
https://docs.oracle.com/javase/8/javafx/api/javafx/collections/ListChangeListener.Change.html#wasUpdated--
使用创建您的列表extractor.
您确实没有提供足够的细节来给出完整的答案,但如果您EventShowable
定义属性,例如
public class EventShowable {
public IntegerProperty xProperty() { ... }
public StringProperty yProperty() { ... }
// ...
}
然后创建一个列表,在以下情况下触发更新事件x
or y
改变你所做的
ObservableList<EventShowable> listEvents =
FXCollections.observableArrayList(eventShowable ->
new Observable[] { eventShowable.xProperty(), eventShowable.yProperty() });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)