ObservableList_OnChange1_
  • oStr1.addListener(new ListChangeListener<String>() {
    @Override
    public void onChanged(Change<? extends String> change) {
    list1.add("\tstrings = " + change.getList());
    //won't work with listview
    //lvwList3.getItems().add(change.getList());
    }
    });
Code :

package javafxtemplate1;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.stage.Stage;



/**
*
* @author Manas9
*/
public class JavaFXTemplate1 extends Application {
//
private final ExternalClass1B ext1 = new ExternalClass1B();
@Override
public void start(Stage primaryStage) throws Exception {
//
Group groot = new Group();
List<String> list1 = new ArrayList();
ext1.loaddata();
//
ObservableList<String> oString1 =
FXCollections.<String>observableArrayList(ext1.list1);
// listen to any change in the string
ObservableList<String> oStr1 =
FXCollections.<String>observableArrayList(list1);
ListView<String> lvwList = new ListView<>(oString1);
lvwList.setLayoutX(10); lvwList.setLayoutY(20);
lvwList.setMaxWidth(100);
ListView<String> lvwList2 = new ListView<>(oStr1);
lvwList2.setLayoutX(110); lvwList2.setLayoutY(20);
lvwList2.setMaxWidth(100);
ListView<String> lvwList3 = new ListView<>();
lvwList3.setLayoutX(210); lvwList3.setLayoutY(20);
lvwList3.setMaxWidth(400);
//
oStr1.addListener(new ListChangeListener<String>() {
@Override
public void onChanged(Change<? extends String> change) {
list1.add("\tstrings = " + change.getList());
//won't work with listview
//lvwList3.getItems().add(change.getList());
}
});
//
//lvwList3.getItems().add("Calling add(\"First\"): ");
lvwList3.getItems().add("getItems() Zero): ");
oStr1.add(0, "Zeroth");
lvwList3.getItems().add("getItems() First: ");
oStr1.add("First");

lvwList3.getItems().add("getItems() Second, Third ");
oStr1.addAll("Second", "Third");
//
//lvwList3.getItems().add("Calling remove(0, 3): ");
//oStr1.remove(0, 3);
//
groot.getChildren().addAll(lvwList, lvwList2,lvwList3);
//
Scene scene = new Scene(groot, 550, 250);
primaryStage.setScene(scene);
primaryStage.setTitle("Application");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}


}

 

Runtime Displays: