我想將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 回答

郎朗坤
TA貢獻1921條經(jīng)驗 獲得超9個贊
問題在于索引的訪問。所以,改變之后
Vector row = (Vector) data.elementAt(1);
至
Vector row = (Vector) data.elementAt(0);
工作正常。

弒天下
TA貢獻1818條經(jīng)驗 獲得超8個贊
您的for循環(huán)是錯誤的。您使用以下條件迭代表:
for (int i = 0; i < table_tags.getRowCount(); i++)
問題是您使用行數(shù)來執(zhí)行迭代。給定Vector中僅一個元素,您的行數(shù)的確會增加1,但使用此元素對表進行迭代將導(dǎo)致它失敗,因為表中的唯一元素的索引為0。將以上條件更改為:
for (int i = 0; i < table_tags.getRowCount() - 1; i++)
我想你會沒事的。
添加回答
舉報
0/150
提交
取消