Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Отображение изменений данных / 3 сообщений из 3, страница 1 из 1
25.10.2007, 15:18:40
    #34894673
starfinder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение изменений данных
Есть таблица, модель которой черпает данные из БД.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
 public   class  AddressBookTableModel  extends  AbstractTableModel  implements  RowSetListener, ListSelectionListener {
   ...
     public   int  getRowCount() {
         try  {
             if  (crowSet.last()) {
                 return  crowSet.getRow();
            }  else  {
                 return   0 ;
            }
        }  catch  (SQLException e) {
             return   0 ;
        }
    }

     public  Object getValueAt( int  rowIndex,  int  columnIndex) {
        Object value =  null ;

         try  {
            crowSet.absolute(rowIndex +  1 );

             if  (visibleColumns !=  null ) {
                columnIndex = findColumnIndex(visibleColumns[columnIndex]);
            }

             if  (columnIndex != - 1 ) {
                value = crowSet.getObject(columnIndex +  1 );
            }
        }  catch  (SQLException sqlex) {
            sqlex.printStackTrace();
        }
         return  value;
    }


     public   void  rowSetChanged(RowSetEvent event) {
        updateRowCount();
        fireTableStructureChanged();
    }

     public   void  rowChanged(RowSetEvent event) {
        updateRowCount();
        fireTableDataChanged();
    }

    ...
}

Первичная инициализация RowSet проводится в конструкторе фрейма, содержащего таблицу.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
     public  AddressBookJFrame() {
         try  {
            initComponents();

            rset =  new  MyCachedRowSet();
            tmodel =  new  AddressBookTableModel();

            loadTableData();
            tmodel.setRowSet(rset);

            ...
            jTable1.setModel(tmodel);
            jTable1.setSelectionModel(tmodel.getTableSelection());

            //Инициализация окна редактирования данных текущей строки таблицы
            dialog =  new  AddressBookJDialog(AddressBookJFrame. this , true, tmodel);

        }  catch  (SQLException ex) {
            Logger.getLogger(AddressBookJFrame. class .getName()).log(Level.SEVERE,  null , ex);
        }
    }


     public   void  loadTableData() {
        rset.loadData("ORD");
    }

Изменение данных / создание новой записи производится в отдельном окне, где для текущей строки выводятся поля, доступные для редактирования, и по нажатии кнопки "OK" они записываются в БД. Как сделать так, чтобы после этого изменения автоматически отобразились в таблице? Три дня уже бьюсь, все впустую.
...
Рейтинг: 0 / 0
25.10.2007, 15:48:59
    #34894799
GuramS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение изменений данных
изпользуй
fireTableChanged()
...
Рейтинг: 0 / 0
25.10.2007, 16:38:59
    #34894984
starfinder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение изменений данных
В главном фрейме

1. Добавил в
Код: plaintext
1.
2.
3.
     public  AddressBookJFrame() {
       ...
       abTME =  new  TableModelEvent(tmodel, TableModelEvent.HEADER_ROW);
    }

2. Добавил в метод вызова формы редактирования вызов fireTableChanged()

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
     private   void  create_jBActionPerformed(java.awt.event.ActionEvent evt)
    {                                          
        dialog.setPrimaryKeyID( 0 );
        dialog.clearFields();
        showDialog();

        //Вызывается по возвращении из модальной формы редактирования
        tmodel.fireTableChanged(abTME);
    }

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


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