Я следующий код, чтобы сделать столбец в моей TreeTableView
:Заливка ComboBox с БД данных в виде табличного дерева
JFXTreeTableColumn<Employee, String> col = new JFXTreeTableColumn<>("marital status");
col.setPrefWidth(150);
col.setCellValueFactory(new Callback<TreeTableColumn.CellDataFeatures<Employee, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(TreeTableColumn.CellDataFeatures<Employee, String> param) {
return param.getValue().getValue().getEmployee().getMaritalStatus().nameProperty();
}
});
MaritalStatusDAO maritalStatusDAO = new MaritalStatusDAO();
ObservableList<MaritalStatus> obsListMaritalStatus = FXCollections.observableArrayList();
obsListMaritalStatus.addAll(maritalStatusDAO.getEstadosCivis());
col.setCellFactory(ComboBoxTreeTableCell.forTreeTableColumn(obsListMaritalStatus));
Но у меня ошибка в col.setCellFactory(ComboBoxTreeTableCell.forTreeTableColumn(obsListMaritalStatus));
линии, я думаю, что ошибка происходит потому, что я сообщаю что данные таблицы будут иметь тип Employee, а в ComboBox данные должны быть типа MatrialStatus (я хочу сделать это, потому что мне нужен id
элемента в ComboBox, а не только для String), и если я сделаю ObservableList<String>
, он будет работать правильно, однако мне нужно, чтобы это было с объектом, так как я могу это сделать?
(я следовал этот учебник: Youtube)
EDIT: Программа не компилируется, и то, что всплывает, когда я парить над setCellFactory
слово, сообщение (Если тип ObservableList является MaritalStatus) : setCellFactory(Callback<TreeTableColumn<Employee,String>,TreeTableCell<Employee,String>>) in the type TreeTableColumn<Employee,String> is not applicable for the arguments (Callback<TreeTableColumn<Object,MaritalStatus>,TreeTableCell<Object,MaritalStatus>>)
«У меня ошибка» - есть ли трассировка стека, которую вы могли бы включить в свой пост? – avojak
Вы импортируете 'javafx.scene.control.cell.ComboBoxTreeTableCell'? – avojak
Не могли бы вы изменить свой вопрос, чтобы включить это сообщение об ошибке, так как это действительно вопрос, который пытается решить? – avojak