如何将选择列添加到显示搜索结果的 JTable

Posted

技术标签:

【中文标题】如何将选择列添加到显示搜索结果的 JTable【英文标题】:How to add a selection column to a JTable which shows search results 【发布时间】:2014-04-21 18:38:46 【问题描述】:

我正在使用 netbeans 7.4。我创建了一个 JFrame,它从 mysql 数据库中搜索数据并将结果显示在 JTable 中。我需要让用户能够对结果行进行选择(这里我使用的数据库有一个名为“Vehicle_R”的表,其中包含有关车辆的数据。因此用户应该能够选择车辆)。 这是我的编码

public class CreateConnection 
Connection con;
Statement statmnt;

public CreateConnection() 
    try
    this.con =DriverManager.getConnection("jdbc:mysql://localhost:3306/vehiclereserve","root","nadun");

    statmnt=con.createStatement();
    
    catch(SQLException e)
    System.out.println(e.toString());

public Connection getCon()

    return con;

public Statement getStatement()

    return statmnt;

主要是我得到了

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)                                          
   try
    CreateConnection con=new CreateConnection();
    ResultSet res=con.getStatement().executeQuery("select * from Vehicle_R");
    jTable1.setModel(DbUtils.resultSetToTableModel(res));      //rs2xml.jar library added
    //TableColumn tc=new TableColumn();
    //jTable1.addColumn(tc);



   
catch (SQLException e)
   
       JOptionPane.showMessageDialog(null, e.toString(), "ERROR", JOptionPane.ERROR_MESSAGE);
   

应添加一个带有复选框以进行选择的新列。请考虑我是 java 新手。

【问题讨论】:

【参考方案1】:
DbUtils.resultSetToTableModel(res));      

这取决于 DbUtils 做什么以及 TableModel 使用什么。如果您可以添加自己的复选框列,TableModel 可能支持“addColumn(...)”方法。

如果 TableModel 不支持该功能,那么您需要使用不同的 TableModel。您还可以使用 DefaultTableModel。它确实支持 addColumn() 方法,因此您可以将数据库中的数据加载到 DefaultTableModel 中,然后为您的复选框添加单独的列。

查看来自Table From Database 的Table From Database Example。这是一个将数据从 ResultSet 加载到 DefaoltTableModel 的简单示例。您只需要进行一些更改即可添加您自己的 checkboxex 列。基本上,您需要做的就是将另一个列标题添加到复选框的“columnNames”向量中。然后,当您处理 ResultSet 中的每一行时,您需要将 Boolean.false 值添加到“行”向量。

【讨论】:

以上是关于如何将选择列添加到显示搜索结果的 JTable的主要内容,如果未能解决你的问题,请参考以下文章

如何通过SQL将一列JCheckBox添加到JTable? [重复]

用搜索词过滤JTable而不丢失背景颜色

如何完全擦除 Java Swing JTable 列及其数据?

以编程方式选择JTable中的多个单元格

如何为 JTable 列添加 JXDatepicker

JAVA中的JTable如何在显示的时候默认选择到第一行