ArrayIndexOutOfBoundsException,字符串,整数

ArrayIndexOutOfBoundsException, String, Int

我的程序错误是

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

此代码用于按钮,它在 jTextField4 中打印结果,但没有写入任何内容

我的代码在 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]));

怎么了?

尝试像这样使用 result[nRow-1] 而不是 result[nRow]

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

因为数组的索引从0开始到nRow-1而不是nRow

result 数组大小为 nRow 但您正在尝试访问索引为 nRow 的元素,您不能这样做,因为数组起始索引为 0 java。我猜您需要将问题行更改为:

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