2013-11-08 2 views
1

Я уже использовал методы fireDataChanged, но я думаю, из-за того, что это связано с моей базой данных, он ничего не сделает.Как я могу сразу увидеть измененные данные на моем JTable?

DelBtn.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      int selRow = table.getSelectedRow();    
      Object element = table.getValueAt(selRow, 0); 
      th = table.getTableHeader(); 
      tcm = th.getColumnModel(); 
      Statement statement = null; 
      try { 
       statement = ResultSetTableModelFactory.connection 
         .createStatement(); 


        if (JisSelected == true) { 

         String delete = "DELETE FROM J WHERE JNO = '" + element + "';"; 
         statement.executeUpdate(delete); 
        } 
        if (SPJisSelected == true) { 

         String delete = "DELETE FROM SPJ WHERE SNO = '" + element + "';"; 
         statement.executeUpdate(delete); 

        } 
       System.out.println(element); 
      } catch (Exception ex) { 
       //ex.printStackTrace(); 
      } 
      model.fireTableDataChanged(); 
     } 
    }); 

} 
+0

Что такое модель? & –

ответ

2

Вашего ActionListener должен выполнять свою работу в вашей реализации doInBbackground() метода SwingWorker. Тем временем вы должны указать, что операция выполняется в любом случае, подходящем для вашего приложения, возможно, в индикаторе визуализации или состояния. Если операция базы данных завершается успешно, обновите TableModel в вашей реализации done(). Ни в коем случае не следует вызывать fireTableDataChanged(), за исключением модели.

Смежные вопросы