Создать кнопку addRow для ObservableList

уважаемые коллеги! Работаю над созданием кнопки, при нажатии на которую в ObservableList добавлялся бы новый элемент, обновлённый лист должен отображаться в TableVier. В программе несколько таблиц, каждая из которых содержит свой список.

Вот код из моего контролера:

   @FXML private ObservableList<Plant> plantData;

@FXML
   protected void onClickAddPlant(ActionEvent e) {
      TableViewPlant tv = new TableViewPlant();
     this.table = tv.getTable().getSelectionModel().getTableView();
      this.plantData = tv.getTable().getSelectionModel().getTableView().getItems();
       this.plantData.add(new Plant("23","errweg"));
       this.plantData.add(new Plant("24","erjweg"));
       this.plantData.add(new Plant("22","erwmeg"));
       this.table.refresh();

       changePlant.setText(String.valueOf(plantData.size()));
       }  ```

Такую зависимость указала в конструкторе объекта 



```numberRidgeColumn.setCellValueFactory(cellData -> cellData.getValue().numberRidgeProperty());
       nameColumn.setCellValueFactory(cellData -> cellData.getValue().nameProperty());
       wateringColumn.setCellValueFactory(cellData -> cellData.getValue().wateringLastElementProperty());
       mineralizationColumn.setCellValueFactory(cellData -> cellData.getValue().mineralizationLastElementProperty());
       deoxidationColumn.setCellValueFactory(cellData -> cellData.getValue().mulchingLastElementProperty());
       mulchingColumn.setCellValueFactory(cellData -> cellData.getValue().deoxidationLastElementProperty());
       sedationColumn.setCellValueFactory(cellData -> cellData.getValue().sedationLastElementProperty());
       harvestinColumn.setCellValueFactory(cellData -> cellData.getValue().harvestingLastElementProperty()); ```


В качестве проверки того, что строки добавились, на соседнюю кнопку помещаю текст с размером листа. Из чего я вижу, что в лист элементы добавлены, но в таблице не обновлены. 

В документации по ссылке https://docs.oracle.com/javafx/2/ui_controls/table-view.htm#CJAGHGBD нашла следующий пример аналогичной кнопки

 

```table.setItems(data);
       table.getColumns().addAll(firstNameCol, lastNameCol, emailCol);

       final TextField addFirstName = new TextField();
       addFirstName.setPromptText("First Name");
       addFirstName.setMaxWidth(firstNameCol.getPrefWidth());
       final TextField addLastName = new TextField();
       addLastName.setMaxWidth(lastNameCol.getPrefWidth());
       addLastName.setPromptText("Last Name");
       final TextField addEmail = new TextField();
       addEmail.setMaxWidth(emailCol.getPrefWidth());
       addEmail.setPromptText("Email");

       final Button addButton = new Button("Add");
       addButton.setOnAction(new EventHandler<ActionEvent>() {
           @Override
           public void handle(ActionEvent e) {
               data.add(new Person(
                       addFirstName.getText(),
                       addLastName.getText(),
                       addEmail.getText()));
               addFirstName.clear();
               addLastName.clear();
               addEmail.clear();
           }
       }); ```

Пример очень похож на мой код. Не вижу, что я сделала не так, почему таблица не обновляется. Подскажите, если у вас есть идеи. Буду благодарна за помощь.  


Ответы (0 шт):