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]));
我的程序错误是
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]));