2016-03-27 56 views
-1

這是我的方法,我已經經歷了每一次超出界限的例外,但無法確定發生了什麼事情。這是不一樣的其他問題,我已經嘗試了所有其他問題數組越界異常from tablemodel-

頒發的邏輯步驟
private void gettablecount(TableModel mod){ 

int r = mod.getRowCount()+1; 
int c = mod.getColumnCount()+1; 
    String[][] ps = new String[r][c]; 

    for (int rw = 0;rw <=r;rw++){ 
    for (int cl = 0;cl<=c;cl++){ 
     ps[rw][cl] = mod.getValueAt(rw, cl).toString(); 

     System.out.print(ps[rw][cl] + " "); 

    } 
    System.out.println(); 
    } 
    } 

我的表模型國防部R = 133行和c = 249列,然後我嘗試把這個成二維數組,無論我嘗試如何繼續超越界限例外,請有人可以提供一些幫助嗎?我已經得到的錯誤是x> = x或-1,或者只是x,試圖解決這個問題。應該很直接,但我不知道發生了什麼。

我剛纔試過這樣:

private void gettablecount(TableModel mod){ 

int r = mod.getRowCount()+1; 
int c = mod.getColumnCount()+1; 
String[][] ps = new String[r][c]; 

for (int rw = 0;rw <r;rw++){ 
    for (int cl = 0;cl<c;cl++){ 
     ps[rw][cl] = mod.getValueAt(rw, cl).toString(); 

     System.out.print(ps[rw][cl] + " "); 

    } 
    System.out.println(); 
} 
    } 

,但我得到的堆棧跟蹤:在線程 「AWT-EventQueue的 - 0」 java.lang.ArrayIndexOutOfBoundsException

例外:249> = 249 是java .util.Vector.elementAt(Vector.java:474)

這是我的向量,其中線474是,我已註釋的線474

public synchronized E elementAt(int index) { 
    if (index >= elementCount) { 
//line 474 below 
     throw new ArrayIndexOutOfBoundsException(index + " >= " + elementCount); 
    } 

    return elementData(index); 
} 
+0

發佈堆棧跟蹤 –

+0

'int rw = 0; rw <= r; rw ++'和'int cl = 0; cl <= c; cl ++'<---再仔細看一遍。除了'String [] [] ps = new String [r] [c];'和'ps [rw] [cl]' – Tunaki

+0

我會發布這個stacktrace,但這是因爲我應該有rw Ingram

回答

0
String[][] ps = new String[r][c]; 

for (int rw = 0;rw <=r;rw++){ 
    for (int cl = 0;cl<=c;cl++){ 
     ps[rw][cl] = mod.getValueAt(rw, cl).toString(); 
     //System.out.println(powerstation[rw][cl] + "\t"); 
     System.out.print(ps[rw][cl] + " "); 

    } 
    System.out.println(); 
} 

psr的長度,但最後指數是r-1 sinces數組索引從0開始的for循環的最後一次迭代扔,因爲ps[r][c]異常不存在。

您需要將<= r<= c更改爲< r< c

+0

我有更新了我的問題,我做了什麼,它沒有工作 – Ingram

+0

@MrAssistance你在474行有一個錯誤。我沒有看到你在474行做什麼。顯然你有一個向量,你在那裏犯的錯誤和你一樣'gettablecount'。 – Gendarme

+0

我會發布行474是註釋的方法,基本上這個方法所做的是填補我的表模型中的空白。我的表模型有很多原始形式的空白,所以我把數據放在左邊的單元格中,無論是1格還是5格左邊 – Ingram