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