2016-03-23 11 views
0

Mein eror in Programm istArrayIndexOutOfBoundsException, String, Int

java.lang.ArrayIndexOutOfBoundsException 
at knapsacproject.Interface.jButton4ActionPerformed(Interface.java:221) 

dieser Code für Schaltfläche ist, die das Ergebnis in jTextField4 druckt, aber nichts schreibt

meinen Code in Java:

DefaultTableModel model = (DefaultTableModel)jTable1.getModel(); 
int nRow = model.getRowCount(); 
try{ 
algorithm algo = new algorithm(getTableData(model, 1),getTableData(model, 2), 
Integer.parseInt(jTextField1.getText)), 
Integer.parseInt(jTextField2.getText)),Integer.parseInt(jTextField3.getText())); 
int[] result = algo.getResult(); 
for(int i = 0; i <nRow;i++) { 
if(result[i]==1) 
model.setValueAt("take", i , 3); 
else 
model.setValueAt("leave", i, 3); 
} 
jTable1.getColumnModel().getColumn(3).setCellRenderer(new StatusColumnCellRenderer()); 
jTextField4.setText(Integer.toString(result[nRow])); 

und eror ist in Zeile:

jTextField4.setText(Integer.toString(result[nRow])); 

Was ist los?

Antwort

1

Versuchen result[nRow-1] statt result[nRow] wie folgt zu verwenden:

jTextField4.setText(Integer.toString(result[nRow-1])); 

Da der Index des Array 0-nRow-1 nicht nRow starten.

+0

Vielen Dank, es ist ok –

2

result Array-Größe ist nRow aber Sie versuchen, Element für den Zugriff mit dem Index nRow und Sie können als Array Startindex ist 0 in Java nicht tun. Meine Vermutung Sie das Problem Zeile ändern müssen:

jTextField4.setText(Integer.toString(result[nRow-1])); 
+0

Danke, es ist ok –