@FXML private void initialize() { personTableNameColumn.setCellValueFactory( (dataFeatures) -> dataFeatures.getValue().nameProperty()); personTableNameColumn.setCellFactory(TextFieldTableCell.forTableColumn()); personTableNameColumn.setOnEditCommit( (cellEditEvent) -> { int row = cellEditEvent.getTablePosition().getRow(); Person person = cellEditEvent.getTableView().getItems().get(row); person.setName(cellEditEvent.getNewValue()); }); personTableEmailColumn.setCellValueFactory( (dataFeatures) -> dataFeatures.getValue().emailProperty()); personTableEmailColumn.setCellFactory(TextFieldTableCell.forTableColumn()); personTableNameColumn.setOnEditCommit( (cellEditEvent) -> { int row = cellEditEvent.getTablePosition().getRow(); Person person = cellEditEvent.getTableView().getItems().get(row); person.setEmail(cellEditEvent.getNewValue()); }); ReadOnlyObjectProperty<Person> selectionProperty = personTableView.getSelectionModel().selectedItemProperty(); selectionProperty.addListener( (observable, oldValue, newValue) -> { personPaneController.setModel(newValue); }); personList = personTableView.getItems(); }