swing tableChanged () не отвечает на изменения таблицы - PullRequest
1 голос
/ 17 ноября 2011

Я пишу в Swing на Java. Я использую менеджер компоновки Netbeans. У меня проблемы с jTable. Я применил к нему модель клиента, которая расширяет AbstractTableModel. Я хочу, чтобы третий столбец содержал логические значения в виде флажков (это я успешно сделал). Диалог, в котором у меня есть jTable, реализует TableModelListener. Мой метод tableChanged () имеет только следующий код: System.out.println("Table changed!"); Однако всякий раз, когда я пытаюсь установить один из флажков, при щелчке и удержании он выполняет маленькое «подавление», а затем, когда я отпускаю, он не меняет состояние флажка. Также не распечатывается "Таблица изменилась!" Это сводит меня с ума. Я прочитал все об этом, но не могу понять, почему у меня не работает. Пожалуйста помоги. Вот соответствующий код:

В конструкторе jDialog:

this.chapterTableModel = new ChapterTableModel(chapterList);
chapterTableModel.addTableModelListener(this);

И затем метод, который делает это: chapterTable.setModel(chapterTableModel);

Тогда под моим конструктором у меня есть этот метод:

@Override
public void tableChanged(TableModelEvent tme) {
  System.out.println("Table Changed!");
}

Весь код можно найти здесь: http://collabedit.com/ttcds и здесь: http://collabedit.com/qn3kx

Заранее спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 17 ноября 2011

Вы вызываете один из fire-методов родительского класса AbstractTableModel в мутаторах ChapterTableModel?

2 голосов
/ 17 ноября 2011

Вы не переопределяете setValueAt в любом месте, поэтому значение в вашей таблице не изменяется.

...