Вы можете использовать JComboBox
, используя редактор ячеек для всех столбцов, используя приведенный ниже код, кроме столбца, который JXTreeTable
использует для отображения иерархических данных.
Пример:
TableColumnExt column = this.tree.getColumnExt(1);
column.setCellEditor(new DefaultCellEditor(new JComboBox());
т.е. Вы не можете использовать JComboBox
для столбца, который JXTreeTable
использует для отображения иерархических данных.
В JXTreeTable
Java-документе они упоминают, что
JXTreeTable - это специализированная таблица, состоящая из одного столбца, в котором отображаются иерархические данные , и любого количества других столбцов, в которых отображаются обычные данные.
JXTreeTable создает внутренне TreeTableCellEditor
, который используется для отображения иерархических данных.
TreeTableModel
предоставляет метод getHierarchicalColumn()
, в котором можно указать, какой столбец используется для отображения иерархических данных
Теперь, если вы хотите указать JComboBox
в первом столбце (столбец 0-й позиции по умолчанию является иерархическим столбцом), тогда вам нужно предоставить другой индекс столбца, используя TreeTableModel, в противном случае вам придется сместить свой столбец (рекомендуется со своей стороны). 1032 *
Код для предоставления другого столбца для иерархических данных
this.tree = new JXTreeTable(new DefaultTreeTableModel() {
public int getHierarchicalColumn() {
return 2;
}
});
Предварительный просмотр
ПРИМЕЧАНИЕ. Я предоставил это решение таким образом, чтобы вы могли достичь своего решения с минимальным кодом настройки. Может быть и другой путь, но я лично считаю, что это решение очень легко реализовать