button1.addActionListener(new
           ActionListener()
          {
           public void actionPerformed(ActionEvent event)
           {
             String str1 = datepick1.getText();
             String str2 = datepick2.getText();
             checkTime(str1,str2);  
             if (tablePanel.getComponentCount()!= 0)
              tablePanel.removeAll();
                 setJTable(str1, str2, tablePanel);
                 tablePanel.updateUI();
           }
 
          });
 //显示JTable
  public void setJTable(String str1,String str2, JPanel panel){
   Date  startDate =  new Date(str1);
   Date  endDate  = new Date(str2);
    final String str3 = str1.replace("/", "").replace(" ", "").substring(0,10);
    final String str4 = str2.replace("/", "").replace(" ", "").substring(0,10);
   final String depName = (String) depComboBox.getSelectedItem(); 
   final double total =  analyst.getTotalDD(depName, str3, str4);
   System.out.println(total);
   if(total > 0)
   {
   final long  n = (endDate.getTime()-startDate.getTime())/3600000-1;
   final Object[][] data = new Object[(int) n][3];
   Object[] columnNames = { "DATE_TIME" , "VALUE", "percentage"};
   Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
   int i;
   for (i=0; i < (int)n; i++)
   {
        cal.setTime(startDate);
    cal.add(Calendar.HOUR_OF_DAY, i+1);
    String date_time = sdf.format(cal.getTime());
    Object[] temp = new Object[]{date_time, 0, 0.00};
     data[i] = temp;
   }
     DefaultTableModel model = new DefaultTableModel(data, columnNames);
     table = new JTable(model);
     model.addTableModelListener(new TableModelListener()
     {
    
public void tableChanged(TableModelEvent e) {
if(e.getType()==TableModelEvent.UPDATE)
        {
if(table.getSelectedColumn()==2){
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
Double percent = Double.parseDouble(tableModel.getValueAt(table.getSelectedRow(),2).toString());
tableModel.insertRow(table.getSelectedRow(),new Object[]{tableModel.getValueAt(table.getSelectedRow(),0),percent*total,percent});
tableModel.removeRow(table.getSelectedRow()+1);
}
            //System.out.println("Update Row "+table.getSelectedRow()+"Col :"+table.getSelectedColumn());                         
        } }
      
     });
     JScrollPane scrollPane = new JScrollPane();
     scrollPane.getViewport().add(table);
     panel.add(scrollPane);
         
         //button2的监听事件         button2.addActionListener(new
          ActionListener()
         {
          public void actionPerformed(ActionEvent event)
          {
        DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
        String [][] dataValue = new String[tableModel.getRowCount()][2];
        double sum = 0;
        for(int i =0;i<tableModel.getRowCount();i++){
        dataValue[i][0] = (String)tableModel.getValueAt(i,0);
        dataValue[i][1] = tableModel.getValueAt(i,2)+"";
        sum += Double.parseDouble(tableModel.getValueAt(i,2).toString());
        }
        if (sum!=1)
        {
        JOptionPane.showMessageDialog(label2, "sum(percentage)="+sum+" 不等于 1!","", JOptionPane.INFORMATION_MESSAGE); 
        }
        else
        {
               analyst.dataAnalyst(dataValue, depName, str3, str4);
           JOptionPane.showMessageDialog(label3, "修改成功","", JOptionPane.INFORMATION_MESSAGE);
        }
          }
         });
   }
  
  }
上面是一个button的监听,然后调用了下面引入JTable的函数,我想请问一下为什么我点击多次button1以后,再点击button2时数据库会把每次点击button1时所选择的数据更新一次呢,有什么办法让他只更新本次的选择?请各位高手帮我解决一下,谢谢了。