从 JList 中删除一行
Posted
技术标签:
【中文标题】从 JList 中删除一行【英文标题】:Delete a row from a JList 【发布时间】:2012-11-20 14:43:55 【问题描述】:我正在制作一个项目,对于这个项目,我需要从 Jlist 中删除一个特定的行。 Jlist 由数据库中的数据填充。
现在,当我单击我的 Jbutton 时,我可以从列代码中删除一行,但是当我想删除一个新行时,我需要在新代码中更改查询。
执行的操作:
@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 中选择一个随机行时,当您单击 Jbutton 时,他会从数据库和 Jlist 中删除该行。
【问题讨论】:
从数据库中删除行后,用数据库中的实际数据重新加载JList。 目前我删除的不是随机选择的行,而是 WHERE CODE = '5' 所以他只删除代码为 5 而不是 6 7 或 8 的行。如果我想删除 6我需要在 WHERE CODE = '6' 中更改它,但我想在不更改代码的情况下删除 6,只需在 JList 中选择它并单击按钮。 您到底遇到了什么问题?你不知道如何从数据库中删除一条记录,或者如何从JList中删除一行,或者如何确定JList中当前选中的行? 请注意,您不应在事件调度线程上更新您的数据库。长时间运行的操作应该发生在后台线程上。更多信息请咨询Swing concurrency tutorial 【参考方案1】:确保列表的每一行都是代表数据库中数据的实际对象(或至少携带可识别所需的信息)
为自己创建一个Action
,将JList
`ListModel` 的引用传递给它。
当actionPerformed
方法被触发时,检查选择了哪些行,从ListModel
中提取行数据并调用删除方法。在 delete 方法中,使用行中的信息来确定删除语句的条件
【讨论】:
以上是关于从 JList 中删除一行的主要内容,如果未能解决你的问题,请参考以下文章