Ich möchte Schlüssel (Branch) von ObservableHashmap in Spalte von TableView hinzufügen. Also habe ich mit Tableview HashMap wie folgt aus:TableView mit HasMap.keySet() wird nicht dynamisch aktualisiert
ObservableMap<Branch, Boolean> myMap = FXCollections.observableHashMap();
ObservableList<Branch> lst = FXCollections.observableArrayList(myMap.keySet());
this.chosenBranTable.setItems(lst);
... und definiert CellValueFactory auf diese Weise:
this.chosenBranColumn.setCellValueFactory((CellDataFeatures<Branch, String> listItem) ->
{
return new ReadOnlyObjectWrapper<String>(listItem.getValue().toString());
});
Das Problem ist, dass - wenn ich mich verändert habe myMap gibt es keine Änderungen in der Tableview . Aber wenn ich ausgeführt habe:
nach dem Ändern von myMap dann Änderungen in der TableView erschien. Vor ObservableHashMap habe ich ObservableList verwendet und es gab kein Problem mit der Aktualisierung.
Dank für die ausführliche Antwort. Sie haben meine Bedenken bezüglich der Erstellung einer neuen Liste, die nicht gesichert ist, zerstreut. Zuvor war ich am Ende der Antwort verwirrt: https://stackoverflow.com/questions/31916041/how-doi-i-use-a-map-as-a-tableview-observablemap-object-parameter?rq= 1 – palandlom