package com.oracle.java.javafx;

import javafx.beans.property.ReadOnlyListWrapper; 
import javafx.collections.FXCollections; 
import javafx.collections.ListChangeListener; 

public class TestListchangelistener2 { 
private final ReadOnlyListWrapper<String> list = new ReadOnlyListWrapper<>(FXCollections.observableArrayList()); 

public TestListchangelistener2() { 
list.addListener((ListChangeListener<String>) c -> { 
System.err.println("changelistener 1"); 
while (c.next()) { 
System.err.println("handle change"); 
} 
}); 
list.getReadOnlyProperty().addListener((ListChangeListener<String>) c -> { 
System.err.println("changelistener 2"); 
//c.reset(); // workaround 
while (c.next()) { 
System.err.println("handle change"); 
} 
}); 
list.add("bla"); 
list.addAll("bli"); 
} 

public static void main(String[] args) { 
new TestListchangelistener2(); 
} 
} 