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

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


person joycollector    schedule 04.08.2009    source источник


Ответы (1)


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

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

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

В JXTreeTable java doc они упоминают, что

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

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

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

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

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

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

Предварительный просмотр введите здесь описание изображения

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

person harsh patel    schedule 27.08.2016