当前位置: 首页 > 知识库问答 >
问题:

错误:java。lang.ArrayIndexOutOfBoundsException:0>=0

沈鸿光
2023-03-14

帮助,我不能删除表中的最后一行。当我删除其他记录时没有错误,但是最后一个记录,我不能删除它

这是我的代码

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    int row = table1.getSelectedRow();
    if(row >= 0){
    int opt = JOptionPane.showConfirmDialog(null, "Confirm to Delete?", "Delete", JOptionPane.YES_NO_OPTION);
    if(opt==0){
    try{
    Class.forName("com.mysql.cj.jdbc.Driver");
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/finals?zeroDateTimeBehavior=CONVERT_TO_NULL", "root", "");
    DefaultTableModel model = (DefaultTableModel) table1.getModel();
    model.removeRow(row);
    String value = (table1.getModel().getValueAt(row, 0).toString());
    String query = "DELETE FROM student WHERE id_num = '"+ value + "'";
    PreparedStatement pst = conn.prepareStatement(query);
    pst.executeUpdate(query);
    JOptionPane.showMessageDialog(this, "Deleted Successfully. \nYour record has been updated.", "Success", JOptionPane.INFORMATION_MESSAGE); 
    }
    catch(Exception ex){ex.printStackTrace();}
    }
    }
    else{JOptionPane.showMessageDialog(this, "Please select a record.", "Error", JOptionPane.INFORMATION_MESSAGE);}
}       

共有1个答案

易琨
2023-03-14

我怀疑异常是在String value= getValueAt(行,0)表达式进行编码。

如果是这种情况,我想您需要切换这两行:

model.removeRow(row);
String value = (table1.getModel().getValueAt(row, 0).toString());

如果删除最后一行,则表模型为空。这就是为什么getValueAt(行,0)将抛出ArrayIndexOutOfBoundsException

 类似资料:
  • 我有下面的模型,我想使用SparkML来估计。 注:特征为向量,标签为双精度 我将我的MLP估计器定义如下: 不幸的是,我出现了以下错误: 使用Spark的默认log4j配置文件:org/apache/Spark/log4j defaults。属性 线程“main”组织中出现异常。阿帕奇。火花SparkException:作业因阶段失败而中止:阶段3.0中的任务0失败1次,最近的失败:阶段3.0中

  • 我仍然试图学习如何创建一个搜索与搜索行动和数据库。但是我有太多的错误: > [运行时异常:没有为名称配置JPA EntityManagerFactory[默认]]当我修复文件时,会出现此错误,如: *db。违约driver=com。mysql。jdbc。驾驶员 db。违约url=“jdbc:mysql://localhost/search" db.default.user=root db.defa

  • 给定一个整数数组和一个整数目标,返回两个数字的索引,使它们相加为目标。 警告:命令行选项已启用安全管理器警告:安全管理器已弃用,将在将来的版本中删除 JAVAlang.ArrayIndexOutOfBoundsException:索引3超出第6行的长度3的界限,解决方案。twoSum 在第54行,驾驶员解决方案。帮手 第87行Driver.main

  • **给定一个整数数组和一个整数目标,返回两个数字的索引,使它们相加为目标。 您可以假设每个输入都只有一个解决方案,并且您不能两次使用相同的元素。 您可以以任何顺序返回答案。 例1: 输入:nums=[2,7,11,15],target=9 输出:[0,1] 说明:因为nums[0]nums[1]==9,所以我们返回[0,1]。 例2: 输入:nums=[3,2,4],target=6 输出:[1,

  • 嗨,我是一个java学习者,并试图使这个程序添加两个数字。 异常在线程"main"java.lang.ArrayIndexOutOfBounds异常: 0在addnumber.main(addnumber.java:16)Java结果: 1 我知道我可以使用Scanner类或string builder类,但是这段代码有什么问题吗?

  • 问题内容: 在PHP中使用的符号,以测试或从不同的或。 例如return ,return 。因此,如果所讨论的子字符串的位置在开始时就在以0为基数的字符串中进行搜索,您将获得哪个PHP可以与之区分开。 有没有办法在Python中做到这一点? 问题答案: 在Python中, 的身份操作测试(,)。 测试逻辑相等性(因此)的运算符。 从技术上讲,这两者都不完全等同于PHP ,后者比较了逻辑相等性和Py