如何将选择列添加到显示搜索结果的 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? [重复]