Как использовать JComboBox
в качестве редактора ячеек в JXTreeTable
? Можете ли вы привести мне рабочий пример, пожалуйста?
Редактор ячеек JXTreeTable и JComboBox
Ответы (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;
}
});
ПРИМЕЧАНИЕ. Я предоставил это решение, чтобы вы могли реализовать свое решение с минимальным кодом настройки. Может быть и другой способ, но я лично нахожу это решение очень простым в реализации.