首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java table.getmode.getvalueat(row,column)可以在一个方法中工作,而不能在其他方法中工作?

Java table.getmode.getvalueat(row,column)可以在一个方法中工作,而不能在其他方法中工作?
EN

Stack Overflow用户
提问于 2016-06-03 07:20:12
回答 2查看 138关注 0票数 0

我有以下两种方法:

代码语言:javascript
复制
 public void Delete(){
    try{


        PreparedStatement stmt = activeConn.prepareStatement("DELETE FROM lid WHERE lid_id = ?");


        int selectedID = (int) table.getModel().getValueAt(table.getSelectedRow(), 0);




        stmt.setInt(1, selectedID);

        stmt.executeUpdate();

        stmt.close();

    }
     catch(SQLException e){
        System.out.println(e);
    }
}

代码语言:javascript
复制
public int getID(){

        int id = (int) table.getModel().getValueAt(table.getSelectedRow(), 0);

        return id;

}

第一个用于删除mysql表中的某一行。它工作得很完美。第二个函数应该只给出第一列中选定行的值(这是表中的id )。但是它给出了""AWT-EventQueue-0“java.lang.ArrayIndexOutOfBoundsException:-1”错误。

EN

回答 2

Stack Overflow用户

发布于 2016-06-03 08:23:16

我认为,您需要调用:javax.swing.table.AbstractTableModel.fireTableDataChanged()

从数据库中删除行之后。

票数 0
EN

Stack Overflow用户

发布于 2016-06-03 10:53:50

代码语言:javascript
复制
public int getID(){
int Selectedrow = table.getSelectedRow();
int id = 0;
if(Selectedrow == -1){
    // No row selected
    // Show error message
}
else{
     id = (int) table.getModel().getValueAt(Selectedrow, 0);
}
return id;
}  

您尚未从抛出exeptionjtable中选择行,因此在使用所选行之前,需要始终检查用户是否选择了行。如果用户没有选择行,您将得到-1,并且jtable没有包含-1的行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37603631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档