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

时间:2018-07-09 09:34:23

标签: java jtable

我想将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);  

2 个答案:

答案 0 :(得分:0)

问题出在索引的访问上。因此,更改

Documents\Visual Studio 2017\Projects

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

工作正常。

答案 1 :(得分:-1)

您的for循环是错误的。您可以使用以下条件来迭代表:

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

问题是您使用行数来执行迭代。给定Vector中仅一个元素,您的行数的确会增加1,但使用此元素对表进行迭代将导致其失败,因为表中的唯一元素的索引为0。将以上条件更改为:

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

我想你会没事的。