Мой табличный вид имеет 2 столбца. Первый имеет имя моего объекта, а второй я хочу иметь ComboBox со значениями из моего списка атрибутов объектов.Как заполнить ячейки столбцов таблицы с помощью ComboBox и наблюдать?
Любое изменение в ComboBox изменит свой выбранный атрибут на элемент списка, выбранный пользователем.
Например:
| Name | Choices |
|---------------|-------------------|
| Object 1 Name | Object 1 ComboBox |
| Object 2 Name | Object 2 ComboBox |
До сих пор я удалось заполнить имена, но я застрял с колонкой выбор.
MyObject Модель:
public class MyObject {
// Objects name is the filename
private File file;
// Selection from the ComboBox that is populated with infoList elements
private SomeInfo selectedInfo;
private List<SomeInfo > infoList;
... getter/setter
Контроллер:
@FXML
private TableView<MyObject> myObjectTableView;
@FXML
private TableColumn<MyObject, String> myObjectNameTableColumn, myObjectChoicesTableColumn;
private void populateTableView(List<MyObject> myObjectList) {
ObservableList<MyObject> myObjectObservableList = FXCollections.observableList(myObjectList);
myObjectTableView.setItems(myObjectObservableList);
myObjectNameTableColumn.setCellValueFactory(c -> new SimpleStringProperty(c.getValue().getFile().getName()));
}
Спасибо Джеймс! – pror21
Добро пожаловать. См. Обновление для немного другого подхода. –
Джеймс, я не понимаю, как я мог бы заполнить infoList, поскольку в вашем новом примере нет сеттера. Вы пропустили это, или это я, у которого что-то отсутствует? :) (Выбираемые варианты задаются динамически с помощью другого метода) – pror21