Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > JTable и база данных


Автор: hvzh 8.11.2006, 15:41
Проблема следующая. Есть таблица, в которую закачены данные из базы данных. Каждая строка - запись в базе. Как отследить изменения, внесенные в поля таблицы для того, чтобы проапдейтить базу данных. Необходимо знать только строку таблицы, в которой произошло изменение

Автор: LSD 8.11.2006, 15:47
Напиши свою TableModel которая будет отслеживать какие строки изменились. Или добавь в существующую модель TableModelListener который будет отслеживать изменения.

Автор: jitm 8.11.2006, 15:49
http://www.javaalmanac.com/egs/javax.swing.table/ValueEvent.html

Автор: hvzh 8.11.2006, 16:36
Спасибо всем большое!

Автор: StandartenFuhrer 12.3.2007, 02:37
Цитата(LSD @ 8.11.2006,  15:47)
... Или добавь в существующую модель TableModelListener который будет отслеживать изменения.

Собстна это и интересует...есть модель(использую для получения инфы с БД)...а с апдейтом напряг...  smile .
Пример оказалсо мало понятен на предмет практичекского испотльзования.... писать новый класс+снова к базе коннектится...  smile 
Мне бы желательно  конкретно знать ячейку

Автор: nornad 12.3.2007, 09:20
Собственно, модель имеет как getValueAt, так и setValueAt. Думаю, этого вполне хватит, чтобы точно знать, какую ячейку изменили.  smile 

Автор: LSD 12.3.2007, 13:19
Цитата(StandartenFuhrer @  12.3.2007,  02:37 Найти цитируемый пост)
Пример оказалсо мало понятен на предмет практичекского испотльзования.... писать новый класс+снова к базе коннектится...   Мне бы желательно  конкретно знать ячейку

Что тебе непонятно? У TableModelEvent получаешь тип события getType(), получаешь первую и последнюю измененные строки getFirstRow()/getLastRow() и помечаешь у себя, что эти строки были изменены, и их надо занести/обновить/удалить из базы.

Автор: StandartenFuhrer 12.3.2007, 16:33
Так если я прописую метод с примера в моей модели то не пашет + еще в классе с таблицой методу addTableModelListener мою модель не передаш...

Автор: LSD 12.3.2007, 17:26
Цитата(StandartenFuhrer @  12.3.2007,  16:33 Найти цитируемый пост)
Так если я прописую метод с примера в моей модели то не пашет

Що? smile 


Цитата(StandartenFuhrer @  12.3.2007,  16:33 Найти цитируемый пост)
еще в классе с таблицой методу addTableModelListener мою модель не передаш...

И не надо, используй getSource(), он возвращает TableModel в которой это событие произошло.

Автор: Бонифаций 12.3.2007, 18:45
А JDBCRowSet вас не спасут? 

Автор: skif18 17.12.2007, 18:59
Цитата(nornad @ 12.3.2007,  07:20)
Собственно, модель имеет как getValueAt, так и setValueAt. Думаю, этого вполне хватит, чтобы точно знать, какую ячейку изменили.  smile

А как обратиться к этим процедурам? из JTable?

Автор: LSD 18.12.2007, 12:30
Цитата(skif18 @  17.12.2007,  18:59 Найти цитируемый пост)
А как обратиться к этим процедурам? из JTable?

Код

getModel().setValue(value, row, column);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)