После создания столбца, редактируемого как текстовое поле, и возможности редактировать и обновлять значение, показанное внутри ячейки, я заметил, что всякий раз, когда я пытался извлечь обновленное значение из табличного представления, только старое исходное неотредактированное значение возвращалосьme - Кажется, что значение, представленное внутри ячейки, не равно значению, возвращенному базовым объектом модели.
Чтобы сделать мой столбец редактируемым, я использую следующий код:
ObservableList<TableColumn> colums = search.getColumns();
colums.get(1).setEditable(true);
colums.get(1).setCellFactory(TextFieldTableCell.<DataPoint>forTableColumn());
colums.get(1).setCellValueFactory(new PropertyValueFactory<DataPoint, String>("No"));
Краткий фрагмент объекта DataPoint показан ниже
public class DataPoint {
private ArrayList<String> data;
/* Constructor not shown in example */
// Get Number
public String getNo() {
return this.data.get(1);
}
public void setNo(String No) {
this.data.set(1, No);
}
}
. Для извлечения значения ячейки используется следующий код:
DataPoint selectedData = (DataPoint) TableView_Search.getSelectionModel().getSelectedItem();
System.out.println(selectedData.getNo());
Так как мне сохранить это обновленноезначение внутри объекта модели / как я могу извлечь показанное значение внутри ячейки?
(Мой графический интерфейс - это документ FXML, созданный с помощью программы Scene Builder из Gluon)