2016-03-27 10 views
-1

Dies ist meine Methode, ich habe jede Ausnahme außerhalb durchlaufen, aber kann nicht herausfinden, was los ist. Dies ist nicht das gleiche wie andere Fragen, wie ich habe alle logischen Schritte von anderen Fragen ausgegeben versuchtArray außerhalb der Grenzen Ausnahme von 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(); 
    } 
    } 

meinem Tisch Modell mod r = 133 Zeilen und c = 249 Spalten, ich dann versuchen, und zu setzen diese in ein 2D-Array, und egal was ich versuche, ich bekomme außerhalb der Grenzen Ausnahmen, bitte kann jemand Hilfe zur Verfügung stellen? Die Fehler, die ich habe, ist x> = x oder -1, oder nur x, wenn ich versuche, das herauszufinden. Sollte ziemlich geradlinig sein, aber ich weiß nicht, was los ist.

Ich habe gerade versucht, dies:

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(); 
} 
    } 

aber ich habe den Stacktrace:

Exception in thread "AWT-Eventqueue-0" java.lang.ArrayIndexOutOfBoundsException: 249> = 249 auf Java .util.Vector.elementAt (Vector.java:474)

Hier ist mein Vektor wo Linie 474 ist, i kommentierte haben Linie 474

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

    return elementData(index); 
} 
+0

Veröffentlichen Sie den Stacktrace –

+0

'int rw = 0; rw <= r; rw ++' und 'int cl = 0; cl <= c; cl ++' <--- Schauen Sie sich das nochmal genau an. Zusammen mit 'String [] [] ps = new String [r] [c];' und 'ps [rw] [cl]' – Tunaki

+0

Ich werde diesen Stacktrace posten, aber es ist, weil ich rw Ingram

Antwort

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(); 
} 

ps hat die Länge von r, aber der letzten Index ist r-1 sinces Array-Indizes bei 0. Die letzte Iteration der for-Schleifen beginnen wirft die Ausnahme, da ps[r][c] existiert nicht.

Sie müssen <= r und <= c zu < r und < c ändern.

+0

ichund haben meine Frage aktualisiert, was ich getan habe, hat es nicht funktioniert – Ingram

+0

@MrAssistance Sie haben einen Fehler in Zeile 474. Ich sehe nicht, was Sie in Zeile 474 tun. Anscheinend haben Sie einen Vector und Sie machen den gleichen Fehler dort wie Sie in 'gettablecount'. – Gendarme

+0

Ich poste die Methode, wo Zeile 474 ist und kommentieren, im Grunde, was diese Methode tut, füllt die Lücken in meinem Tabellenmodell. Mein Tabellenmodell hat viele Leerzeichen in seiner rohen Form, so nehme ich die Daten in einer Zelle, die auf der linken Seite ist, ob das 1 Zelle oder 5 Zellen auf der linken Seite ist – Ingram

Verwandte Themen