当我尝试显示ArrayIndexOutOfBoundsException
data
从Vector
到Jtable
console
错误
这里的错误:
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);
答案 0 :(得分:1)
for(int count = 0; count <= table_1.getRowCount(); count++)
如评论中所述,索引范围为[0,长度)。我怀疑问题在于您使用的是<=
而不是<
。它应该看起来像:
for(int count = 0; count < table_1.getRowCount(); count++)