powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Отображение изменений данных
3 сообщений из 3, страница 1 из 1
Отображение изменений данных
    #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
Отображение изменений данных
    #34894799
GuramS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
изпользуй
fireTableChanged()
...
Рейтинг: 0 / 0
Отображение изменений данных
    #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
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Отображение изменений данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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