JTable + TableCellEditor: изменения буфера данных - PullRequest
2 голосов
/ 10 июня 2011

мои вопросы нацелены на редактируемые JTables (используя TableCellEditor).

Некоторые инструменты (например, SQLDeveloper) позволяют пользователю редактировать несколько записей, создавать новые или удалять существующие записи. В таблице показаны измененные записи, но изменения носят локальный характер, пока пользователь не нажмет кнопку «сохранить» (или «зафиксирует» в случае SQLDeveloper). Пользователь также может отменить все свои изменения.

Каков наилучший способ реализовать это поведение в приложении Swing с помощью JTable?

Я не думаю, что такой инструмент, как SQLDeveloper, создает копию записей, перечисленных в таблице. Моей первой идеей было создание TableModel, который оборачивает другие TableModel (это позволяет мне использовать произвольную реализацию TableModel) и хранит только значения измененных ячеек. Это прекрасно работает, когда количество строк не меняется. Но как справиться со вставкой или удалением строк?

Заранее спасибо за любые подсказки.

Markus

1 Ответ

1 голос
/ 10 июня 2011

Внутри TableModel вы можете зарегистрировать TableModelListener с родительским TableModel и обрабатывать события для вставки или удаления соответственно в вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...