2016-03-23 22 views
0

programda My eror bu kod jTextField4sonucu yazdırır düğme içindirArrayIndexOutOfBoundsException, String, Int

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

olduğunu, ama hiçbir şey java

kodumu yazıyor:

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])); 

ve eror şu satırdadır:

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

Sorun nedir?

cevap

1

böyle result[nRow-1] yerine result[nRow] kullanmayı deneyin: dizinin indeks 0 den nRow-1 değil nRow başlar

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

çünkü.

+0

Teşekkür ederim, sorun yok –

2

result dizi boyutunda nRow ama indeksi nRow ile eleman erişmeye çalışan ve dizi başlangıç ​​dizini olarak java 0 olduğunu yapamaz. Tahminimce problem satırını değiştirmelisiniz:

+0

Teşekkür ederim, sorun değil –