Как создать столбец и установить имя в JavaFx TreeTableView

как я могу создать столбец и установить его имя из списка строк в JavaFx. Есть ли метод, подобный public String getColumnName(int column) и getColumnCountas в swingx в JavaFx?


person Iman    schedule 26.02.2015    source источник


Ответы (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);

Однако обратите внимание, что вам почти наверняка потребуется установить фабрику значений ячеек для каждого столбца и, возможно, настроить ее другими способами.

person James_D    schedule 27.02.2015