来自JavaFX ListChangeListener.Change API
公共抽象布尔下一个()
转到下一个更改。Change 实例在其初始状态下是无效的,需要在调用其他方法之前调用 next()。第一次 next() 调用将使该对象代表第一次更改。
所以,如果我们有第一个变化,我们可以有第二个等等。现在,考虑下面的代码:
public class NewMain {
public static void main(String[] args) throws InterruptedException {
ObservableList<String> list = FXCollections.observableArrayList("Z", "Y", "X");
list.addListener((ListChangeListener)(event) -> {
while(event.next()) {
System.out.println("Added:" + event.wasAdded());
System.out.println("Permutated:" + event.wasPermutated());
System.out.println("Removed:" + event.wasRemoved());
System.out.println("Replaced:" + event.wasReplaced());
System.out.println("Updated:" + event.wasUpdated());
}
});
System.out.println("REPLACING");
list.set(0, "W");
System.out.println("\nCLEARING");
list.clear();
}
}
这是输出:
REPLACING
Added:true
Permutated:false
Removed:true
Replaced:true
Updated:false
CLEARING
Added:false
Permutated:false
Removed:true
Replaced:false
Updated:false
如果更换的一项更改很明确 -replaced + removed + added那么如何解释当我们明确时,我们无论如何都会得到一项更改。请解释一下,当我们在 ListChangeListener.Change 中获得多项更改时?
MM们
相关分类