import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
public class Main {
public static void main(String[] args) {
ObservableList<String> list = FXCollections.observableArrayList("one",
"two");
System.out.println(list);
list.addListener(Main::onChanged);
list.addAll("A", "B");
System.out.println("After addAll() - list: " + list);
list.remove(1, 3);
System.out.println("After remove() - list: " + list);
list.retainAll("one");
System.out.println("After retainAll() - list: " + list);
list.set(0, "ONE");
System.out.println("After set() - list: " + list);
}
public static void onChanged(
ListChangeListener.Change<? extends String> change) {
while (change.next()) {
if (change.wasPermutated()) {
System.out.println("A permutation is detected.");
} else if (change.wasUpdated()) {
System.out.println("An update is detected.");
} else if (change.wasReplaced()) {