У меня есть два контроллера, один контроллер имеет таблицу, в которой перечислены все members
, а другой контроллер позволяет добавить member
.У меня возникают проблемы с обновлением таблицы при добавлении member
.Я использую две модели, которые мне уже предоставлены, поэтому я ничего не меняю в моделях.
Каждая member
имеет id
и profession
, я использую cellValueFactory
для перечисленияmembers
.Я попытался добавить listeners
к cellValueFactoryProperties
следующим образом:
idColumn.cellValueFactoryProperty().addListener((obs, oldV, newV) -> memberTv.refresh());
Но он все еще не показывает новый members
Контроллер с TableView:
@FXML
TableColumn<Member, Integer> idColumn;
@FXML
TableColumn<Member, String> profColumn;
@FXML
TableView<Member> memberTv;
@FXML
private void initialize() {
memberTv.setItems(getClub().getMembers());
idColumn.setCellValueFactory(cellData -> new
ReadOnlyObjectWrapper(cellData.getValue().getId()));
profColumn.setCellValueFactory(cellData -> new
ReadOnlyStringWrapper(cellData.getValue().getProf()));
}
public final Club getClub() {
\\\returns Club model
}
Контроллер, который добавляет members
private int getId() {
return Integer.parseInt(idTf.getText());
}
private void setId(String id) {
idTf.setText(id);
}
private String getProf() {
return profTf.getText();
}
private void setProf(String prof) {
profTf.setText("" + prof);
}
@FXML
public void handleAddMember(){
getClub().addMember(getId(), getProf());
}
Когда я добавляю элемент, я хочу, чтобы TableView отображал добавленный элемент, но он показывает только элементы, уже добавленные в модель.