2012-11-20 103 views
0

我在做一个项目,对于这个项目我需要从Jlist中删除一个特定的行。 Jlist充满了来自数据库的数据。从JList中删除一行

现在当我点击我的Jbutton时,我可以从列代码中删除一行,但是当我想要删除一个新行时,我需要在新代码中更改查询。

的actionPerformed:

@Override 
    public void Delete() { 
     Connection conn; 
     String sql = "DELETE FROM OEFENINGEN WHERE CODE = '5'"; 

     try{ 
      conn = OpenConnection(); 
      stmt = conn.createStatement(); 

      int result = stmt.executeUpdate(sql); 
      if(result > 0){ 
       System.out.println("Record Delete"); 
      } else{ 
       System.out.println("Record NOT Delete"); 
      } 
     }catch (SQLException e){ 
      e.printStackTrace(); 
     } finally { 
      if (stmt != null){ 
       try{ 
        stmt.close(); 
       }catch (SQLException e){ 
        e.printStackTrace(); 
       } 
      } 
     } 
     } 
    } 

我想,当你选择在JList中随机排他从数据库中删除行的jList当你点击一个JButton。

+2

从数据库中删除行后,用数据库中的实际数据重新加载JList。 –

+0

在此刻我删除不是一个随机选择的行,但WHERE代码='5',所以他只删除行代码是5,而不是6 7或8.如果我想删除6我需要改变它在WHERE CODE ='6'但我想删除6而不更改代码,只需在JList中选择它并单击Button。 – Ismail

+0

究竟是什么问题?您不知道如何从数据库中删除记录,或者如何从JList中删除一行,或者如何确定JList中当前选定的行? –

回答

1

确保列表中的每行是代表数据库中的数据(或者至少是携带必要的信息,以便识别)

创建自己的Action一个实际的对象,传递的一个参考给它的`ListModel`。

actionPerformed方法被触发时,检查选中哪些行,从ListModel中提取行数据并调用delete方法。在删除方法中,使用行中的信息来标识删除语句的标准