Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JTable - редактирование данных, какой метод ещё забыл 
V
    Опции темы
fath_fast
Дата 17.3.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 9.4.2007

Репутация: нет
Всего: нет



Есть JTable, есть модель собственноручно написанная:
Код

class getTable extends AbstractTableModel {

    private ResultSet rs;
    private ResultSetMetaData rsm;

    public getTable(ResultSet rs) {
        try {
            this.rs = rs;
            this.rsm = rs.getMetaData();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public Object getValueAt(int r, int c) {
        try {
           
            rs.absolute(r+1);
            return   rs.getObject(c+1);
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
  
    
      public void setValueAt(Object val, int r, int c) {
        
            // r=val;
          try {
         //     rs.move
         // rs.updateString(c, val.toString());
              rs.absolute(r+1);
              rs.updateString(c, val.toString());
              
              //      fireTableDataChanged();
              fireTableCellUpdated(r, c);
              
         } catch (Exception ex) {
            ex.printStackTrace();
          }
            
       
    }
    
    public int getRowCount() {
        try {
            rs.last();
            return rs.getRow();
        } catch (Exception ex) {
            ex.printStackTrace();
            return 0;
        }
    }
  

    public int getColumnCount() {
        try {
            return rsm.getColumnCount();
        } catch (Exception ex) {
            ex.printStackTrace();
            return 0;
        }
    }
    @Override
    public boolean isCellEditable(int r, int c)
    {
        return c==0||c==1||c==2;
    }
   
}


Данные беру из базы:
Код

  Connection conn = null; //getTable.getCon();
        try 
        {
             Class.forName("com.mysql.jdbc.Driver");
             conn =  getTable.getCon();
        
            java.sql.Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery("SELECT * FROM travel");
            CachedRowSet crs = new CachedRowSetImpl();
            crs.populate(rs);
            jTable1.setModel(new getTable(crs));
//            jTable1.getModel().addTableModelListener(new ChangeTable(jTable1));
            
        } 
        catch (Exception ex) 
        {
            ex.printStackTrace();
        } 
        finally {
             try 
           {
       
            conn.close();
             } 
        catch (SQLException ex) 
        {
            ex.printStackTrace();
        } 
        }

В итоге когда начинаю редактировать ячейку, и после того  как она теряет фокус,  модель не изменяется - данные осатются такими же....
Код привёл. Укажите, плиз, на мою ошибку....

Добавлено через 6 минут и 10 секунд
всё всем спасибо!!! В индексах метода setValueAt накосчил
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0372 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.