问题补充:
异常如下
Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
at java.util.Vector.elementAt(Unknown Source)
at showInhaInformation$1.getValueAt(showInhaInformation.java:50)//异常位置为return ((Vector)vector.elementAt(row)).elementAt(column); 
at showInhaInformation$1.getColumnClass(showInhaInformation.java:88)//异常位置为return   getValueAt(0,c).getClass(); 
at javax.swing.JTable.getColumnClass(Unknown Source)
at javax.swing.JTable.getCellRenderer(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at javax.swing.JOptionPane.showOptionDialog(Unknown Source)
at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
at showInhaInformation.actionPerformed(showInhaInformation.java:200)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

解决方案 »

  1.   

    return ((Vector) vector.elementAt(row)).elementAt(column);
    这一行数组越界
    vector.size()<(row+1)或者((Vector) vector.elementAt(row)).size()<(column+1)
      

  2.   

    while(rs.next()) 
    { if(vector==null) 

    JOptionPane.showMessageDialog(null,   "vector值为空"); 

    if(tm==null) 

    JOptionPane.showMessageDialog(null,   "tm值为空"); 

    tm.fireTableStructureChanged();//更新表格内容 rec_vector   =new   Vector();//对象实例化 
    vector=new   Vector();//从结果集中取数据放入向量vector中   
    rec_vector.addElement(rs.getString("NO")); 
    rec_vector.addElement(rs.getString("NAME")); 
    rec_vector.addElement(rs.getString("PASSWORD")); 
    rec_vector.addElement(rs.getString("SEX")); 
    rec_vector.addElement(rs.getString("ADDRESS")); 
    rec_vector.addElement(rs.getString("COUNT")); 
    rec_vector.addElement(rs.getString("TELPHONE")); 
    rec_vector.addElement(rs.getString("IC")); 
    vector.addElement(vector);   //向量vector加入到vect } 
    vector=new   Vector();//从结果集中取数据放入向量vector中   这个的实例化应放在While循环应放在外面.
    如果放在里面.那里的的元素只可能是一个.
      

  3.   

    我把
    vector=newVector();//从结果集中取数据放入向量vector中 
    放在while()循环后还是不行啊
    不过既不报错
    也没有抛出异常
      

  4.   


    vector.removeAllElements();//初始化向量对象 
    //这一行放到循环外边试试
    vector=new   Vector();//从结果集中取数据放入向量vector中 while(rs.next()) 
    { if(vector==null) 

    JOptionPane.showMessageDialog(null,   "vector值为空"); 

    if(tm==null) 

    JOptionPane.showMessageDialog(null,   "tm值为空"); 

    tm.fireTableStructureChanged();//更新表格内容 rec_vector   =new   Vector();//对象实例化 
    //vector=new   Vector();//从结果集中取数据放入向量vector中   
    rec_vector.addElement(rs.getString("NO")); 
    rec_vector.addElement(rs.getString("NAME")); 
    rec_vector.addElement(rs.getString("PASSWORD")); 
    rec_vector.addElement(rs.getString("SEX")); 
    rec_vector.addElement(rs.getString("ADDRESS")); 
    rec_vector.addElement(rs.getString("COUNT")); 
    rec_vector.addElement(rs.getString("TELPHONE")); 
    rec_vector.addElement(rs.getString("IC")); 
    vector.addElement(vector);   //向量vector加入到vect } 
      

  5.   

    还是不行啊
    还是一样的错误
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 4 >= 4  (数据库中有4条记录)
    at java.util.Vector.elementAt(Unknown Source)
    at ShowInhaInformation$1.getValueAt(ShowInhaInformation.java:54)
    at ShowInhaInformation$1.getColumnClass(ShowInhaInformation.java:98)
    at javax.swing.JTable.getColumnClass(Unknown Source)
    at javax.swing.JTable.getCellRenderer(Unknown Source)
    at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
    at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
    at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
    at javax.swing.plaf.ComponentUI.update(Unknown Source)
    at javax.swing.JComponent.paintComponent(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent._paintImmediately(Unknown Source)
    at javax.swing.JComponent.paintImmediately(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    想快点把分给各位啊
    谢谢帮助
      

  6.   

    这个方法应该改一下:
                        public   Object   getValueAt(int   row,int   column)
                        {   /*   返回   row   和   column   处单元格的属性值   */
                      //   return   data[row][col];
                        if(!vector.isEmpty())
    {                    
    return   ((Vector)vector.elementAt(row)).elementAt(column);                
    return   ((Vector)vector.elementAt(row-1)).elementAt(column);
    }                
    else
    {                    
    return   null;                
    }            
                        }
    原因:
    因为这里的row是结果集中的行号,是从1开始的。
      

  7.   

    sorry,忘记加删除线。
    红色的行删除,保留下面一行。
      

  8.   

    最简单的方式,不要去用AbstractTableModel,而用DefaultTableModel.
    那些setValueAt()与getValueAt()就不用自己写了.
    如果想用AbstractTableModel,可以去参考下JDK的DefaultTableModel.
    你的setValueAt()方法变更的是data的值,而不是去变更vector的值.
    但是取值又是用的vector.
      

  9.   

    问题解决了。按照下面的方法:
    方法 public void actionPerformed(ActionEvent event) 中,
    try部分替换为下面的代码即可:
    ...... try
    {
    Connection con = DriverManager.getConnection("jdbc:odbc:bws81");
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("Select   *   from   inhaInformation");
    vector.removeAllElements();
    rec_vector = new Vector();
    vector = new Vector();
    while (rs.next())
    { if (vector == null)
    {
    JOptionPane.showMessageDialog(null, "vector is empty!");
    } if (tm == null)
    {
    JOptionPane.showMessageDialog(null, "tm is null!");
    }
    tm.fireTableStructureChanged();// rec_vector = new Vector();
    // vector = new Vector();
    rec_vector.addElement(rs.getString("NO"));
    rec_vector.addElement(rs.getString("NAME"));
    rec_vector.addElement(rs.getString("PASSWORD"));
    rec_vector.addElement(rs.getString("SEX"));
    rec_vector.addElement(rs.getString("ADDRESS"));
    rec_vector.addElement(rs.getString("COUNT"));
    rec_vector.addElement(rs.getString("TELPHONE"));
    rec_vector.addElement(rs.getString("IC"));
    //
    vector.addElement(rec_vector);
    }
    tm.fireTableStructureChanged();
    stmt.close();
    con.close();
    JOptionPane.showMessageDialog(null, "Execute here!");
    }......
      

  10.   

    这应该是粗心大意造成的错误。错误有两处。我已经改过来了,你直接copy过去就可以了。刚才测试过没有问题。
      

  11.   

    刚刚看了一下,发现有个地方改得有点问题,用下面的就可以了:
    ......try
    {
    Connection   con   =   DriverManager.getConnection("jdbc:odbc:bws81");
    Statement   stmt   =   con.createStatement();
    ResultSet   rs   =   stmt.executeQuery("Select       *       from       inhaInformation");
    vector.removeAllElements();
    vector   =   new   Vector();
    while   (rs.next())
    {if   (vector   ==   null)
    {
    JOptionPane.showMessageDialog(null,   "vector   is   empty!");
    }if   (tm   ==   null)
    {
    JOptionPane.showMessageDialog(null,   "tm   is   null!");
    }
    tm.fireTableStructureChanged(); rec_vector   =   new   Vector();
    // vector   =   new   Vector();
    rec_vector.addElement(rs.getString("NO"));
    rec_vector.addElement(rs.getString("NAME"));
    rec_vector.addElement(rs.getString("PASSWORD"));
    rec_vector.addElement(rs.getString("SEX"));
    rec_vector.addElement(rs.getString("ADDRESS"));
    rec_vector.addElement(rs.getString("COUNT"));
    rec_vector.addElement(rs.getString("TELPHONE"));
    rec_vector.addElement(rs.getString("IC"));
    //
    vector.addElement(rec_vector);
    }
    tm.fireTableStructureChanged();
    stmt.close();
    con.close();
    JOptionPane.showMessageDialog(null,   "Execute   here!");
    }......
      

  12.   

    晕死,发错了
    应该是下面的:
    ......try
    {
    Connection   con   =   DriverManager.getConnection("jdbc:odbc:bws81");
    Statement   stmt   =   con.createStatement();
    ResultSet   rs   =   stmt.executeQuery("Select       *       from       inhaInformation");
    vector.removeAllElements();
    vector   =   new   Vector();
    while   (rs.next())
    {if   (vector   ==   null)
    {
    JOptionPane.showMessageDialog(null,   "vector   is   empty!");
    }if   (tm   ==   null)
    {
    JOptionPane.showMessageDialog(null,   "tm   is   null!");
    }
    tm.fireTableStructureChanged(); rec_vector   =   new   Vector();
    // vector   =   new   Vector();
    rec_vector.addElement(rs.getString("NO"));
    rec_vector.addElement(rs.getString("NAME"));
    rec_vector.addElement(rs.getString("PASSWORD"));
    rec_vector.addElement(rs.getString("SEX"));
    rec_vector.addElement(rs.getString("ADDRESS"));
    rec_vector.addElement(rs.getString("COUNT"));
    rec_vector.addElement(rs.getString("TELPHONE"));
    rec_vector.addElement(rs.getString("IC"));
    //
    vector.addElement(rec_vector);
    }
    tm.fireTableStructureChanged();
    stmt.close();
    con.close();
    JOptionPane.showMessageDialog(null,   "Execute   here!");
    }......不好意思,事情有点多。这是最后修改结果。