为什么Jtable上有一个元素的ArrayIndexOutOfBoundsException错误

我想将jTable元素添加到列表中。当jTable具有一个以上元素时,它工作正常,但是当jTable具有一个元素时,它给我以下错误。为什么这样?如何解决。谢谢你。


这是错误。


错误:线程“ AWT-EventQueue-0”中的异常java.lang.ArrayIndexOutOfBoundsException:1> = 1


这是代码:


 DefaultTableModel table_tags = (DefaultTableModel)this.jTable_selectedTags.getModel(); 


 int rowCount=table_tags.getRowCount();


 Vector data = table_tags.getDataVector();

 Vector row = (Vector) data.elementAt(1);


 int mColIndex = 0;

 List tags_data = new ArrayList(rowCount);


 for (int i = 0; i < table_tags.getRowCount(); i++) {

        row = (Vector) data.elementAt(i);

        tags_data.add(row.get(mColIndex));

 }

 System.out.println(tags_data);  


慕慕森
浏览 205回答 2
2回答

郎朗坤

问题在于索引的访问。所以,改变之后Vector&nbsp;row&nbsp;=&nbsp;(Vector)&nbsp;data.elementAt(1);至Vector&nbsp;row&nbsp;=&nbsp;(Vector)&nbsp;data.elementAt(0);工作正常。

弑天下

您的for循环是错误的。您使用以下条件迭代表:for (int i = 0; i < table_tags.getRowCount(); i++)问题是您使用行数来执行迭代。给定Vector中仅一个元素,您的行数的确会增加1,但使用此元素对表进行迭代将导致它失败,因为表中的唯一元素的索引为0。将以上条件更改为:for (int i = 0; i < table_tags.getRowCount() - 1; i++)我想你会没事的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java