Редактор ячеек JXTreeTable и JComboBox

Как я могу использовать JComboBox как редактор ячеек в JXTreeTable? Можете ли вы дать мне рабочий пример, пожалуйста?

2 ответа

table.getColumn(0).setCellEditor(
    new DefaultCellEditor(new JComboBox(new Object[]{"A", "B", "C"})));

Ты можешь использовать JComboBox используя редактор ячеек для всех столбцов, используя приведенный ниже код, кроме столбца, который JXTreeTable используется для отображения иерархических данных.
Пример:

    TableColumnExt column = this.tree.getColumnExt(1);
    column.setCellEditor(new DefaultCellEditor(new JComboBox());

т.е. вы не можете использовать JComboBox для столбца, который JXTreeTable используется для отображения иерархических данных.

В JXTreeTable Ява док они упоминают,

JXTreeTable - это специализированная таблица, состоящая из одного столбца, в котором отображаются иерархические данные, и любого количества других столбцов, в которых отображаются обычные данные.

JXTreeTable создает TreeTableCellEditor внутри, который используется для отображения иерархических данных.

TreeTableModel предоставляет метод getHierarchicalColumn() в котором вы можете указать, какой столбец используется для отображения иерархических данных

Теперь, если вы хотите предоставить JComboBox в первом столбце (столбец 0-й позиции по умолчанию является иерархическим столбцом), затем вы должны указать другой индекс столбца, используя TreeTableModel, в противном случае вы должны сместить свой столбец (рекомендуется со своей стороны).

Код для предоставления другого столбца для иерархических данных

this.tree = new JXTreeTable(new DefaultTreeTableModel() {
    public int getHierarchicalColumn() {
       return 2;
    }
 });

предварительный просмотр

ПРИМЕЧАНИЕ. Я предоставил это решение таким образом, чтобы вы могли достичь своего решения с минимальным кодом настройки. Может быть другой путь, но я лично считаю, что это решение очень легко реализовать

Другие вопросы по тегам