从TabPane在选项卡中创建表
private Map<CategoryActive, ObservableList> mapData = new HashMap<>(); List<CategoryActive> categories = categoryActiveModel.getAll(); //load category from DB collection for (CategoryActive category : categories) { Tab tab = new Tab(); tabPane.getTabs().add(tab); TableView<AbstractActive> tableView = new TableView<AbstractActive>(); TableColumn<AbstractActive, String> clmnTitle = new TableColumn<>(); clmnTitle.setCellValueFactory(new PropertyValueFactory<>("title")); tab.setContent(tableView); ObservableList<AbstractActive> data = FXCollections.observableArrayList(); data.addAll(category.getAbstractActives()); //load items collection from DB tableView.setItems(data); mapData.put(category, data); // save for update }
尝试更新
public void refresh() { System.out.println("refresh"); for (Map.Entry<CategoryActive, ObservableList> entry : mapData.entrySet()) { entry.getValue().clear(); entry.getValue().addAll(entry.getKey().getAbstractActives()); } }
更新不会发生。地图存储副本,而不是链接?如何解决这个问题?