Tôi thực sự gặp khó khăn để hiểu cách đối tượng ObservableList
hoạt động trong JavaFX. Tôi muốn theo dõi nếu một đối tượng trong danh sách đã được sửa đổi. Cho đến nay, tôi chỉ thấy rằng tôi có thể theo dõi xem danh sách, với tư cách là một thực thể, đã được sửa đổi ... nhưng không phải là các đối tượng trong danh sách:Làm thế nào để theo dõi các thay đổi trên các đối tượng có trong một ObservableList JavaFX
private ObservableList<Stuff> myList = FXCollections.<Stuff>observableArrayList();
myList.addListener((ListChangeListener.Change<? extends Stuff> change) -> {
while(change.next()){
if(change.wasUpdated()){
System.out.println("Update detected");
}
else if(change.wasPermutated()){
}
else{
for (Stuff remitem : change.getRemoved()) {
//do things
}
for (Stuff additem : change.getAddedSubList()) {
//do things
}
}
}
});
là có cách để thực hiện việc này. Tôi đang tìm một luồng công việc của sự kiện như sửa đổi đối tượng triggers => modify trên danh sách triggers => refresh trên một view có danh sách như là nguồn chính của nó.
Cảm ơn
bản sao có thể có của [Java 8: Danh sách có thể quan sát - Trình nghe không hợp lệ và Trình nghe thay đổi được gọi trong trường hợp thay đổi thuộc tính] (http://stackoverflow.com/questions/26730034/java-8-observable-list-invalidation-listener -nor-change-listener-được gọi là trong) –
Xem thêm bài đăng trên blog này: [Thuộc tính Extractor: Cách tốt nhất để có được ListView ngay lập tức cập nhật các phần tử của nó] (http://www.jensd.de/wordpress/?p = 1650) –