2016-03-23 12 views
0

プログラムで私のERORは、このコードはjTextField4に結果を出力するボタン用ですArrayIndexOutOfBoundsExceptionが、文字列、のInt

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

ですが、何も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])); 

と一致しています。

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

どうしたのですか?

答えて

1

は次のようにresult[nRow-1]の代わりresult[nRow]を使用してみてください:配列のインデックスは0からnRow-1ないnRowに開始

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

ので。

+0

ありがとう、それはいいです –

2

result配列サイズはnRowですが、インデックスnRowで要素にアクセスしようとしている、あなたは、配列の開始インデックスとしてJavaで0であることを行うことはできません。私の推測では、問題の行を次のように変更する必要があります。

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

ありがとう、それはいいです –