Заполнить список комбинированного списка динамически для каждой строки в табличном представлении javaFx
Я создал табличное представление в Java Fx, один из столбцов в табличном представлении состоит из ComboBoxTableCell. Пожалуйста, найдите ниже код для табличного представления
public class TabViewController {
@FXML
private TabPane cnfmTab;
@FXML
private TableView<TabVO> partsTable;
@FXML
private TableColumn<TabVO, String> column1;
@FXML
private TableColumn<TabVO, String> column2;
@FXML
private TableColumn<TabVO, String> column3;
private ObservableList<TabVO> tableData = FXCollections.observableArrayList();
private ObservableList<String> column1List;
@FXML
public void initialize(){
tableData = FXCollections.observableArrayList(callDAO.getTableData(1));
column1.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getColumn1()));
column1
.setCellFactory(new Callback<TableColumn<tabVO, String>, TableCell<tabVO, String>>() {
@SuppressWarnings({ "rawtypes", "unchecked" })
public TableCell call(TableColumn p) {
ComboBoxTableCell cell = new ComboBoxTableCell(column1List){
@Override
public void updateItem(Object item, boolean empty) {
}
};
cell.setAlignment(Pos.CENTER);
return cell;
}
});
column1.setOnEditCommit(
new EventHandler<CellEditEvent<tabVO, String>>() {
@Override
public void handle(CellEditEvent<tabVO,String> t) {
};
}
);
}
partsTable.setItems(tableData);
}
Объект данных:
public class TabVO {
private String column1;
private String column2;
private String column3;
private ObservableList<String> column1List;
/* Getters and Setters */
}
В приведенном выше коде каждая строка таблицы имеет тип TabVo.
В таблице column1 имеет тип combo box. Прямо сейчас список для поля со списком column1 заполнен столбцом column1List, который объявлен в TabViewController, из-за чего все строки табличного представления заполнены одним и тем же раскрывающимся списком.
Но я хочу, чтобы каждая строка таблицы была заполнена различным списком, который присутствует в TabVo.
Может кто-нибудь сказать мне, как получить доступ к объекту TabVo и заполнить поле со списком, представленным в TabVo?