在我的jTable中,第一列包含数值。选择“添加行”时的下一行运行此代码:
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
int x = jTable1.getRowCount();
String cellValue = "";
if(x > 0){
java.lang.Object cell = jTable1.getValueAt(x,0);
int a = Integer.parseInt(cell.toString());
int b = a + 1;
cellValue = Integer.toString(b);
}
java.lang.Object[] os = new Object[]{cellValue,"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",};
model.addRow(os);
jTable1.setModel(model);
jTable1.setAutoCreateColumnsFromModel(true);
此代码的要点是添加一个新行,但新行中的第一个值将被填写。这是关键数字。不幸的是,密钥数与行数无关。
当按下jButton到“Add Row”时,它会抛出此异常。
线程中的异常“AWT-EventQueue-0”java.lang.ArrayIndexOutOfBoundsException:837> = 837
这个数字是有意义的,因为837是我按下按钮时jTable的行数。
感谢您提前提供任何帮助。
答案 0 :(得分:0)
这会映射到Vector.size()中的DefaultTableModel:
int x = jTable1.getRowCount();
这会映射到Vector.get(int index):
java.lang.Object cell = jTable1.getValueAt(x,0);
仔细研究Vector.get(int index)揭示:
抛出:ArrayIndexOutOfBoundsException - 索引超出范围(索引< 0 || index> = size())。
现在,因为x == size()
引发了异常。
这应解决问题:
java.lang.Object cell = jTable1.getValueAt(--x,0);