Я искал ответ на предыдущий вопрос , и у меня была гениальная идея преодолеть ограничение на JTable
. Мне нужно, чтобы редактор различался построчно, тогда как JTable
может обрабатывать только один редактор для каждого столбца.
Так что моя идея - использовать MouseListener
для проверки строки и столбца на JTable
и каждый раз устанавливать новый редактор.
Но вызов setCellEditor()
во второй раз не имеет никакого эффекта. Редактор остается первым, который был установлен. Итак, как я могу заставить setCellEditor работать второй раз для того же столбца?
Вот код в MouseListener
.
public void mouseClicked(MouseEvent e) {
int cols = resultTable.columnAtPoint(new Point(e.getX(), e.getY()));
int rows = resultTable.rowAtPoint(new Point(e.getX(), e.getY()));
StorageObject item = (StorageObject) resultTable.getModel().getValueAt(rows, cols);
TableColumn col = resultTable.getColumnModel().getColumn(cols);
col.setCellEditor(new MyComboBoxEditor(item.list));
}