как я могу создать столбец и установить его имя из списка строк в JavaFx. Есть ли метод, подобный public String getColumnName(int column)
и getColumnCount
as в swingx в JavaFx?
Как создать столбец и установить имя в JavaFx TreeTableView
Ответы (1)
Нет, модель данных для JavaFX TreeTableView
управляется иначе, чем модель данных в Swing.
Модель данных представлена двумя свойствами в классе TreeTableView
: root
и columns
.
root
— это TreeItem<T>
(где T
— это тип данных, представленный каждой строкой TreeTableView
). Он имеет метод getChildren()
для дочерних элементов в древовидной структуре, расширенном состоянии и т.д.
getColumns()
возвращает ObservableList<TreeTableColumn<T,?>>
, который по существу представляет собой список столбцов. Таким образом, количество столбцов определяется размером этого списка. TreeTableColumn
имеет свойство text
, которое инкапсулирует заголовок столбца. Таким образом, имена столбцов представлены свойствами text
элементов списка, возвращаемого getColumns()
.
Итак, чтобы ответить на ваш вопрос, учитывая
TreeTableView<T> treeTable ;
(где T
заменяется некоторым фактическим типом) и
List<String> columnNames ;
вы можете заполнить столбцы таблицы дерева с помощью
for (String name : columnNames) {
TreeTableColumn<T,?> column = new TreeTableColumn<>(name);
treeTable.getColumns().add(column);
}
или если вы предпочитаете стиль Java 8:
columnNames.stream().map(TreeTableColumn::new)
.forEach(treeTable.getColumns()::add);
Однако обратите внимание, что вам почти наверняка потребуется установить фабрику значений ячеек для каждого столбца и, возможно, настроить ее другими способами.