Как сделать обновление таблицы при добавлении новых данных с другого контроллера - PullRequest
0 голосов
/ 02 июня 2019

У меня есть два контроллера, один контроллер имеет таблицу, в которой перечислены все 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 отображал добавленный элемент, но он показывает только элементы, уже добавленные в модель.

1 Ответ

0 голосов
/ 03 июня 2019

Я понял, у меня есть ClubController, который устанавливает сцену после нажатия кнопки меню. Проблема заключалась в том, что всякий раз, когда я ставил сцену, я использовал новый экземпляр модели Club вместо использования getKiosk (). Я изменил все новые функции Club () `` `` на getClub () `` `и теперь все работает отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...