Java 尝试将数据从jtable显示到控制台时出现Get-ArrayIndexOutofBounds异常

Java 尝试将数据从jtable显示到控制台时出现Get-ArrayIndexOutofBounds异常,java,arrays,swing,jtable,Java,Arrays,Swing,Jtable,当我试图显示从Jtable输入到控制台的数据向量时,出现ArrayIndexOutOfBoundsException错误 下面是错误: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 3 at java.util.Vector.elementAt(Unknown Source) at javax.swing.table.DefaultTableColumnMo

当我试图显示从
Jtable
输入到
控制台的
数据
向量
时,出现
ArrayIndexOutOfBoundsException
错误

下面是错误:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 3
    at java.util.Vector.elementAt(Unknown Source)
at javax.swing.table.DefaultTableColumnModel.getColumn(Unknown Source)
at sun.swing.SwingUtilities2.convertColumnIndexToModel(Unknown Source)
at javax.swing.JTable.convertColumnIndexToModel(Unknown Source)
at javax.swing.JTable.getValueAt(Unknown Source)
代码如下:

ResultSet dbresultset = sqlstatement.executeQuery("select * from ***);
ResultSetMetaData rsmetadata = dbresultset.getMetaData();       
int numcols = rsmetadata.getColumnCount();    

if(tglbtnAdd.isSelected() == true)
  {  while (dbresultset.next())
     {    Vector<Object> row = new Vector<Object>(numcols);
      for (int i = 1; i <= numcols; i++)
        {
             row.addElement( dbresultset.getObject(i) );
        }
         defaultmodel2.addRow(row );

          }

ArrayList<String> numdata = new ArrayList<String>();
for(int count = 0; count <= table_1.getRowCount(); count++){
        numdata.add(table_1.getValueAt(count, 3).toString());
    }
System.out.println(numdata);
ResultSet-dbresultset=sqlstatement.executeQuery(“从***中选择*);
ResultSetMetaData rsmetadata=dbresultset.getMetaData();
int numcols=rsmetadata.getColumnCount();
if(tglbtnAdd.isSelected()==true)
{while(dbresultset.next())
{矢量行=新矢量(numcols);

for(int i=1;i
for(int count=0;count)您如何知道有3列或更多列?该行实际上假设有4列。索引计数从0开始。我怀疑OP试图获取第3列的值,在这种情况下,正确的调用是
表1.getValueAt(count,2)
。要尝试从结果集“idices”获取对象“实际上从1开始,这就是OP使用
1
@peeskillet的原因。我将编辑我的答案,谢谢。
for(int count = 0; count <= table_1.getRowCount(); count++)
for(int count = 0; count < table_1.getRowCount(); count++)