Поэтому я пытаюсь создать ObservableMap, в котором ключ является String, а FXCollections.observableList - значением
Map<String, ObservableList<String>> namesMap = new HashMap<>();
ObservableMap<String, ObservableList<String>> names = FXCollections.observableMap(namesMap);
names.addListener(new MapChangeListener<String, List<String>>() {
@Override
public void onChanged(MapChangeListener.Change<? extends String, ? extends List<String>> change) {
System.out.println("Detected a change!");
System.out.println(change.getValueAdded());
}
});
names.put("1", FXCollections.observableArrayList().addListener(new ListChangeListener<String>(){
@Override
public void onChanged(ListChangeListener.Change<? extends String> c) {
//to-do
}
}));
names.get("1").add("One");
Но это дает мне ошибку в строке, где я назначаю слушателю значение ключа 1
. Я положил FXCollections.observableArrayList()
в качестве значения для ключа 1
, потому что при создании наблюдаемого списка это назначаемое значение, поэтому я попытался установить его в качестве значения. Предложения компилятора не помогли. Причина, по которой я это делаю, состоит в том, чтобы создать наблюдаемую карту со значениями, которые я мог бы отслеживать / наблюдать, если произошло изменение.
Кто-нибудь может мне помочь? Любая помощь будет оценена. Спасибо!