【问题标题】:How to Delete a row from jtable as well as database when selecting checkbox?选择复选框时如何从jtable和数据库中删除一行?
【发布时间】:2014-11-05 19:23:57
【问题描述】:

我需要从数据库中删除 jtable 中显示的特定行。我想在删除按钮上添加动作监听器。但我对java编程有点陌生,所以面临问题。

我的表格代码如下...

 rt= st.executeQuery("SELECT * FROM login");
       DefaultTableModel model=(DefaultTableModel) usertable.getModel();
       while(rt.next()){
           username = rt.getString(2);
           firstname = rt.getString(5);
           lastname = rt.getString(6);
           emailid = rt.getString(1);
           accounttype = rt.getString(4);
           model.addRow(new Object[] {username, firstname, lastname, emailid, accounttype});

【问题讨论】:

  • 请在此链接docs.oracle.com/javase/tutorial/uiswing/events/… 上阅读有关 actionListener 的信息,同时清除您的问题是否要删除选中复选框或单击按钮时的行
  • 从 JTable 中删除实际上意味着从表的 TableModel 中删除。如果您自己创建了模型,那么您的模型可能会有执行此操作的方法,然后该方法将调用从 AbstractTableModel 父级继承的火灾通知方法。如果您没有创建模型,那么您可能正在使用 DefaultTableModel 并会调用其 removeRow(...) 方法。
  • 对于数据库,您将创建并执行其中包含 DELETE 命令的 PreparedStatement,可以通过谷歌搜索找到详细信息,这是我高度建议的你这样做了(也许在带着这个问题来到这里之前)。
  • 我已经添加了我的表格代码。你能再帮忙吗?
  • @JatinDogra:您使用的是 DefaultTableModel,因此对于模型,只需调用 deleteRow(...) 作为 DefaultTableModel API,Swing 教程会告诉您这样做。您确实应该自己做更多的搜索,因为您的问题非常广泛,也许正是因为您还没有完成这一步。

标签: java database swing jtable


【解决方案1】:

从 JTable 中删除实际上意味着从表的 TableModel 中删除。如果您自己创建了模型,那么您的模型可能会有执行此操作的方法,然后该方法将调用火灾通知方法,这里 fireTableRowsDeleted(...) 继承自 AbstractTableModel 父级。如果您没有创建模型,那么您可能正在使用 DefaultTableModel 并会调用其 removeRow(...) 方法。

对于数据库,您将创建并执行其中包含 DELETE 命令的 PreparedStatement,其详细信息将取决于您的数据库和您的代码。

【讨论】:

    猜你喜欢
    • 2015-11-13
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 2020-03-31
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    相关资源
    最近更新 更多