2012-03-30 1 views
0

Я составляю таблицу, которая позволяет пользователям В PLACE CELL EDITING i.e пользователь может редактировать таблицу Cell на месте. Я хотел бы отметить строку как «Изменить», установив изображение «EDIT» в первую ячейку строки, если какая-либо ячейка этой строки была обновлена ​​или отредактирована. Я добавил CellEditorListener в JTable, но как бы я знал, что данные ячейки не были изменены или изменены? Как пользователь, выполняющий управление программным обеспечением, принимает меня к редактированиюStopped(), но как я узнаю, что пользователь не обновил данные?Как узнать, что данные ячейки не были изменены или изменены?

CellEditorListener cellEditorListener = new CellEditorListener() { 

public void editingStopped(ChangeEvent e) { 
    //If cell has been edited 
} 

public void editingCanceled(ChangeEvent e) { 
// If cell has not been updated       
} 
}; 

Я предполагаю, что я получу программный контроль editingCanceled(), когда пользователь был возврат без обновления данных из ячейки. Есть ли другой подход?

ответ

0

Прежде чем приступать к изменениям, вы должны сохранить базовое состояние своего JTable (клонировать модель?). Таким образом, всякий раз, когда изменения клеток, вы можете сравнить его с первоначальным значением, чтобы увидеть его изменились ли не

+0

'PropertyChangeEvent' могут использоваться в этом контексте, как показано в ссылках, предоставленных @mKorbel. – trashgod