Java 在jTable中添加复选框

Java 在jTable中添加复选框,java,swing,jtable,jcheckbox,Java,Swing,Jtable,Jcheckbox,我正在使用Swigs创建桌面应用程序。我已经创建了从数据库提供数据并将其插入Jtable的功能。现在我想使用提供附加功能,包括附加列和复选框以及a按钮来删除该perticular列(选中)单击按钮时,我使用了netbeans,它提供了最大拖放选项。我无法理解在当前代码中如何以及在何处插入复选框的实例,以便为每一行插入复选框。 要为每一行提供复选框,您必须生成复选框的多个实例 private void jButton1ActionPerformed(java.awt.event.ActionEve

我正在使用Swigs创建桌面应用程序。我已经创建了从数据库提供数据并将其插入Jtable的功能。现在我想使用提供附加功能,包括附加列和复选框以及a按钮来删除该perticular列(选中)单击按钮时,我使用了netbeans,它提供了最大拖放选项。我无法理解在当前代码中如何以及在何处插入复选框的实例,以便为每一行插入复选框。 要为每一行提供复选框,您必须生成复选框的多个实例

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    java.sql.Connection con = new DBConnection().getConnection();
    PreparedStatement pst;
    String Q;
    Q = "select * from userregister ";
    try {
        pst = con.prepareStatement(Q);

        ResultSet rs = null;
        rs = pst.executeQuery();
        String a, b, c, d;
        int x = 0;
     //   DefaultTableModel dt = new DefaultTableModel(data, columnNames);
        JCheckBox c1 = new JCheckBox();
        for (int i = 0; rs.next(); i++) {
            a = rs.getString(1);
            b = rs.getString(2);
            c = rs.getString(3);
            d = rs.getString(4);
       jTable2.setValueAt(a, i, 0);
       jTable2.setValueAt(b, i, 1);
       jTable2.setValueAt(c, i, 2);
       jTable2.setValueAt(d, i, 3);
     jTable2.setValueAt(, i,4);
        }


   //jTable1.setAutoscrolls(rootPaneCheckingEnabled);
  // TODO add your handling code here:
    } catch (SQLException ex) {
        Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex);
    }
}                                        

这是将数据插入表中的方法。我还想知道,如何才能确定选中了哪个复选框,以及如何使用变量响应多次删除的请求。plz帮助

您必须查看教程的一节

您要查找的
JCheckBox
Boolean
类的默认呈现器/编辑器。如上所述,这将利用来决定适当的渲染器/编辑器。如果使用上述方法的实现,则始终返回
Object.class
,因此必须重写它以返回
Boolean.class
。例如,假设第一列包含布尔值:

DefaultTableModel model = new DefaultTableModel() {
    @Override
    Class<?> getColumnClass(int columnIndex) {
        return columnIndex == 0 ? Boolean.class : super.getColumnClass(columnIndex);
    }
};

离题
数据库调用是耗时的任务,可能会阻塞(又称EDT),导致GUI无响应。EDT是一个单独的特殊线程,Swing组件在其中创建和更新。为了避免阻塞,该线程考虑使用A在后台线程中执行数据库调用,并更新EDT中的Swing组件。更多信息请参见教程。

您必须查看本教程的一节

您要查找的
JCheckBox
Boolean
类的默认呈现器/编辑器。如上所述,这将利用来决定适当的渲染器/编辑器。如果使用上述方法的实现,则始终返回
Object.class
,因此必须重写它以返回
Boolean.class
。例如,假设第一列包含布尔值:

DefaultTableModel model = new DefaultTableModel() {
    @Override
    Class<?> getColumnClass(int columnIndex) {
        return columnIndex == 0 ? Boolean.class : super.getColumnClass(columnIndex);
    }
};

离题 数据库调用是耗时的任务,可能会阻塞(又称EDT),导致GUI无响应。EDT是一个单独的特殊线程,Swing组件在其中创建和更新。为了避免阻塞,该线程考虑使用A在后台线程中执行数据库调用,并更新EDT中的Swing组件。查看更多线索。

也许这有助于您:查看此处:也许这有助于您:查看此处: