Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Refresh таблицы / 22 сообщений из 22, страница 1 из 1
04.04.2005, 14:31
    #32996380
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
Господа, а как делается обновление данных в JTable после удаления/ добавления/ корректировки записи? Неужто нужно снова выполнять запрос select и заполнять таблицу?
...
Рейтинг: 0 / 0
04.04.2005, 15:51
    #32996637
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
через модель не катит
Код: plaintext
ad.fireTableDataChanged(); 
укажите направление куда смотреть
...
Рейтинг: 0 / 0
04.04.2005, 16:19
    #32996717
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
никто не делал?
...
Рейтинг: 0 / 0
05.04.2005, 11:11
    #32997626
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
up
...
Рейтинг: 0 / 0
05.04.2005, 11:19
    #32997637
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
Не могу никак разобраться как работает fire-семейство :(
...
Рейтинг: 0 / 0
05.04.2005, 11:40
    #32997691
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
СыРчерез модель не катит
Код: plaintext
ad.fireTableDataChanged(); 
укажите направление куда смотретьпочему не катит?
...
Рейтинг: 0 / 0
05.04.2005, 11:48
    #32997723
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
Не катит не в смысле "не подходит", а в смысле "не работает". как-то я не так выразился. вызываю эти методы (fire...), а таблица не перерисовывается. все остается как было. mainTable.repaint(); не помогает.
мож я их не так использую (fire...)?
...
Рейтинг: 0 / 0
05.04.2005, 12:05
    #32997777
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
если добавил строку (строки): fireTableRowsInserted(...);

обновил: fireTableRowsUpdated(...)

удалил: fireTableRowsDeleted(..)

изменения в структуре таблицы: fireTableStructureChanged()

глобальный апдейт :) - fireTableDataChanged()
...
Рейтинг: 0 / 0
05.04.2005, 12:14
    #32997805
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
Это я понял еще вчера, но как использовать?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
//int tek_column=mainTable.getSelectedColumn();
                 int  tek_row=mainTable.getSelectedRow();
                //System.out.println(tek_column+"/"+tek_row);
                String cont=ad.getValueAt(tek_row, 0 ).toString() ;
                 int  n = JOptionPane.showOptionDialog(que,
                     "Действительно удалить "+cont +"?",
                    "Удаление"+" ",
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE,
                     null , null , null 
                    );
                 if  (n==JOptionPane.YES_OPTION ) {
                    //System.out.println("Нажали Да.");

                           ad.executeUpdate("delete from Containers where containers='"+
                            cont+"'");
                    //Нужно обновить таблицу после удаления...
                   ad.fireTableRowsDeleted(tek_row,tek_row);
                    mainTable.repaint();
...
Рейтинг: 0 / 0
05.04.2005, 12:16
    #32997811
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
... и ничего не происходит :(
...
Рейтинг: 0 / 0
05.04.2005, 12:25
    #32997836
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
СыР... и ничего не происходит :(
возьми ВЕСЬ проект (можно без компилированных классов),
пакуй его и высылай мне. grasoff@fpestde.net

здесь напиши, что уже отправил :)
...
Рейтинг: 0 / 0
05.04.2005, 12:39
    #32997866
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
А.Грасоff™ JE СыР... и ничего не происходит :(
возьми ВЕСЬ проект (можно без компилированных классов),
пакуй его и высылай мне. grasoff@fpestde.net

здесь напиши, что уже отправил :)отправил :)
...
Рейтинг: 0 / 0
05.04.2005, 13:47
    #32998064
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
в JDBCAdapter нереализован метод fireTableRowsDeleted(...);
...
Рейтинг: 0 / 0
05.04.2005, 14:07
    #32998132
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
см. аттач с измененным кодом
...
Рейтинг: 0 / 0
05.04.2005, 14:15
    #32998158
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
именно то, что надо
СПАСИБО!
...
Рейтинг: 0 / 0
06.04.2005, 09:58
    #32999507
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
СыРименно то, что надо
я бы так не сказал :)

тот вариант моих изменений в твоем коде я привел только для того,
чтобы код заработал и принес визуальный эффект :) неправильно то,
что fireXXX() вызывается совсем не там - если ты тестил код, наверное,
видел маленький визуальный глюк после удаления строки.

правильно делать так (рассмотрим только удаление строки из таблицы):
- в реализации TableModel (у тебя это JDBCAdapter) определяется метод deleteRow(int rowIndex);
- в нем:
а) удаляется запись в базе данных ("delete from mtable where id = ?")
б) удаляется элемент данных в модели (ArrayList data: data.remove(rowIndex));
в) и именно в этом методе (deleteRow(int rowIndex)) после всех успешных удалений вызываем метод fireTableRowsDeleted(...). либо как вариант fireTableDataChanged()

далее у модели должны быть такие же методы addRow(), update(), и еще что надо.

и из своего приложения ты уже вызываешь именно эти методы модели,
передавая в них нужные параметры.

это является правильной (насколько я свинг знаю) работой с таблицей
и ее данными.

PS я могу и ошибаться :)
...
Рейтинг: 0 / 0
06.04.2005, 10:44
    #32999676
СыР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
Что-то у меня такое впечатление что я изобретаю велосипед. Приходится писать модель практически с нуля. Ведь должны же быть готовые модели? Видел несколько примеров моделей, но они были уж слишком простые.
Реализованных fireTableRowsInserted(...), fireTableRowsUpdated(...), fireTableRowsDeleted(..) я пока не смог найти (яндекс не рулит).
Почему так?
...
Рейтинг: 0 / 0
06.04.2005, 10:45
    #32999678
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
Ув. А.Грасоff™ JE, в расширении модели у меня есть метод
Код: plaintext
1.
  public  Object getValueAt( int  parm1,  int  parm2) {
              System.out.println("i="+i);}
В него я втулил System.out.println,и заметил,что при движении мышкой по таблице,постоянно выводится значение переменной i.Почему этот метод постоянно вызывается,как сделать так,чтобы этого не было,т.е. данные отобразились и все.
...
Рейтинг: 0 / 0
06.04.2005, 11:13
    #32999797
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
я не знаю свинг настолько хорошо :) я вообще с desktop-приложениями,
обладающими GUI, не работаю (только с консольными). не работаю - в смысле
не пишу. основы знаю. не более.
...
Рейтинг: 0 / 0
06.04.2005, 11:15
    #32999802
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
СыРРеализованных fireTableRowsInserted(...), fireTableRowsUpdated(...), fireTableRowsDeleted(..) я пока не смог найти (яндекс не рулит).
Почему так?
рулит гугл. а вообще, свинг знает немного людей. основная масса
знает основы. и пользуется fireTableDataChanged(). наверное :)
...
Рейтинг: 0 / 0
06.04.2005, 11:27
    #32999848
Liner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
Присоединяюсь к СыР, если у кого-нить есть исходники как правильно с таблицей работать - поделитесь плиз, а то один и тот же туториал везде.

И можно еще такой вот вопрос. Есть на форме 2 таблицы, выбираешь в одной таблице строку и в зависимости от этого заполняешь вторую таблицу. В базе это 2 таблицы по ключу связанные. Как правильно организовать? Я так понимаю нужно делать 2 разные модели для каждой таблицы и как-то связывать?

А.Грасоff™ JE
а) удаляется запись в базе данных ("delete from mtable where id = ?")
б) удаляется элемент данных в модели (ArrayList data: data.remove(rowIndex));
в) и именно в этом методе (deleteRow(int rowIndex))


Может в шаге 2 делать перезакачку из базы данных в модель?
Если несколько пользователей с одной и той же таблицей работают - данные будут свежее.
...
Рейтинг: 0 / 0
06.04.2005, 11:32
    #32999866
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Refresh таблицы
Liner[
quot А.Грасоff™ JE]
а) удаляется запись в базе данных ("delete from mtable where id = ?")
б) удаляется элемент данных в модели (ArrayList data: data.remove(rowIndex));
в) и именно в этом методе (deleteRow(int rowIndex))

Может в шаге 2 делать перезакачку из базы данных в модель?
Если несколько пользователей с одной и той же таблицей работают - данные будут свежее.[/quot]
это уже от потребностей зависит.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Refresh таблицы / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]