Java JTable включен, но не доступен для редактирования с помощью TableCellRenderer и модели по умолчанию

#java #swing #jtable #tablecellrenderer

Вопрос:

Я использую TableCellRenderer для визуализации кнопки в ячейке для JTable, созданной с помощью Matisse в netbeans.

Моя проблема в том … При двойном щелчке по кнопке я могу добраться до текстового поля позади. Поэтому я хочу сделать текстовое поле недоступным для редактирования.

На данный момент мои setEnabled имеют значение true: table_watchlistMain.setEnabled(true); Мне это нужно, потому что я хочу, чтобы пользователь мог выбрать строку …

Я использую модель по умолчанию… нужно ли мне создавать свою собственную модель?

Я просто ищу решение, чтобы включить jtable, но не редактировать. это возможно??

Ответ №1:

DefaultTableModel.isCellEditable() Метод всегда возвращает true :

Возвращает значение true независимо от значений параметров.

Так что, да, вам следует создать свою собственную модель, например:

 public class MyTableModel extends DefaultTableModel
{
    @Override
    public boolean isCellEditable(int row, int column)
    {
        return false;
    }
}