2017-07-29 116 views
0
public int getSum(){ 
     int sum=0; 

     for(int i=1; i <= sqlite_master.getRowCount(); i++) 
     { 
      sum=sum+Integer.parseInt((String) sqlite_master.getValueAt(i, 2));  
     } 
     return sum; 
    } 

的代碼被寫入,以便獲得一個特定列的總和在2列的表與一個列字符串和其他數字數組索引越界異常的JTable中

錯誤是

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2 >= 2 
at java.util.Vector.elementAt(Vector.java:474) 

請提供一些解決方案以解決問題

+2

指數從0開始在Java中。不在1.爲什麼你將整數存儲爲字符串,而不是將它們存儲爲整數? –

回答

1

這應該會更好。索引從0開始,上升到行數減1.

public int getSum(){ 
     int sum=0; 

     for(int i=0; i < sqlite_master.getRowCount(); i++) 
     { 
      sum=sum+Integer.parseInt((String) sqlite_master.getValueAt(i, 2));  
     } 
     return sum; 
    } 
+1

(1+)發佈此作爲答案(我正要做同樣的事情),而不是評論。現在OP可以「接受」答案,因此人們不需要繼續閱讀已經有解決方案的問題。 – camickr

+0

我更新了代碼,但仍顯示相同的問題。如果可能的話,你可以嘗試採取其他方法來獲得相同的解決方案。 – Evan

+0

@Evan也許你對列索引有同樣的問題?如果您打算選擇第二列,您應該將1作爲索引(即'sqlite_master.getValueAt(i,1)')。作爲其他索引的列索引也從0開始。除此之外,在您發佈的小片段中沒有更多可以看到的內容。考慮發佈一個[MCVE]如果這個答案和這個評論不能解決你的問題。 –