兄弟,你的代码出现这种情况是因为对象数组下标超出范围,比如一个长度为5的Int型数组,应该为a[0]~a[4],但在程序中出现a[5],a[6]等等就会出现这种异常

解决方案 »

  1.   

    所以,你要检查你的代码中的addColumn(int index, Object name, int minWidth, int maxWidth, int width),public void removeColumn(int index);public void insertRow(int row, Object[] rowData);public void insertRow(int row, Vector rowData)的这几个方法,因为这几个方法都涉及到对象数组下标问题
      

  2.   

    最好是在以上几个方法中进行ArrayIndexOutOfBoundsException的异常捕捉,以防止对象数组下标超出范围
      

  3.   

    错误在于 table.addRow(new Object[] {"hello"});你的addRow方法写的不对,加入的对象至少要有那五个列呀!给你一个我以前写得代码,参照一下吧
    dataModel=new KSTableModel(data);
    table = new JTable(dataModel);
    import java.util.Vector;
    import javax.swing.table.AbstractTableModel;
    import java.security.*;public class KSTableModel extends AbstractTableModel {
      Vector data;  public KSTableModel( Vector data){this.data=data;}
      final String columnName[]={"alias","date created","entry type","finger(MD5)"};
      public int getRowCount(){return data.size();};
      public int getColumnCount(){return columnName.length ;}
      public String getColumnName(int column)
       {
           return columnName[column];
        }
      public void appendRow(KeyStoreItem item){
        data.add(item);
        fireTableRowsInserted(data.size() - 1, data.size() - 1);  }  public void deleteRow(int curRow){
        data.remove(curRow);
       fireTableRowsDeleted(curRow,curRow);
      }  public Object getValueAt(int row, int column){
        KeyStoreItem aItem=(KeyStoreItem) data.elementAt(row);
        switch( column){
        case 0:
          return aItem.alias;
        case 1:
            return aItem.creationDate;    case 2:
            return aItem.type;    case 3:
            return aItem.fingerprint;
        }
            return null;
      };}
      

  4.   

    哦,忘了说KeyStoreItem 是另一个类,如:
    public class KeyStoreItem
    {   
        public String alias;
        public String creationDate;
        public String type;
        public String fingerprint;    public KeyStoreItem(String alias, String createionDate, String type, String fingerprint)
        {
            this.alias = null;
            creationDate = null;
            this.type = null;
            this.fingerprint = null;
            this.alias = alias;
            creationDate = createionDate;
            this.type = type;
            this.fingerprint = fingerprint;
        }