class Table extends JTable  {
  DefaultTableModel model; //使用DefaultTabelModel模型
  Vector row_vector=new Vector();//数据库中使用
  Vector column_vector;  
  public Table(){  
 String[] Column_Names={"a","b","删除",};
  column_vector=new Vector();
  column_vector.addElement(Column_Names[0]);
  column_vector.addElement(Column_Names[1]);
  column_vector.addElement(Column_Names[2]);    
  all_Rows();
  model=new DefaultTableModel(row_vector,column_vector);
  setModel(model); 
 getColumn("删除").setCellEditor(new ButtonEditor(new JCheckBox()));  
  }
public  void all_Rows()
   {
    /*
读取数据库所有数据 
*/
  }
public void remove_Row(String id,int row,int col){
   JButton button=new JButton(); //使用于子类       
               delete(id);     
          int max= getRowCount();        
              model.removeRow(row);
              model.setRowCount(max-1);             
              model.fireTableDataChanged();
      }
 } 
 public  void delete(String id)
      {
       /*删除数据库指定id数据*/   
      }
//使用内部类
  class ButtonEditor
      extends DefaultCellEditor
  {   
    protected JButton button; //使用于子类
    private String label; //仅使用于本类
    private boolean isPushed;
    String Id;
//构造函数
    public ButtonEditor(JCheckBox checkBox)
    {
      super(checkBox);
      button=new JButton();
      button.setOpaque(true);
      button.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent e)
        {
          stopCellEditing();
        }
      });
    }
    public Component getTableCellEditorComponent(JTable table,Object value,
        boolean isSelected,int row,int column)
    {
      Id=table.getValueAt(row,0).toString();
     if(column==2)
      {
        label=(value==null)?"删除":value.toString();
        button.setText(label); 
        remove_Row(Id,row,column);         
      }
        return button;
    }
       
    public Object getCellEditorValue()
    {
      isPushed=false;
      return null;
    }
    public boolean stopCellEditing()
    {
      isPushed=false;
      return super.stopCellEditing();
    }
    protected void fireEditingStopped()
    {
      super.fireEditingStopped();
    }
  }
 }
为何我点击删除行的时候只要不是最后一行。。都可以。。只要点击最后一行的删除就报 
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 30 >= 30 at java.util.Vector.elementAt(Vector.java:432) at javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:637) at javax.swing.JTable.setValueAt(JTable.java:1875) at javax.swing.JTable.editingStopped(JTable.java:3333)
这个错误呢?
谢谢亚