Swing 中通过文本框模糊查询表格中内容

该博客介绍了如何在Swing应用中通过文本框实现对表格内容的模糊查询。通过创建`SearchSmsContentFrame`类,设置JTextField和JTable,监听文本框的输入变化,调用`SearchSmsContent`类进行搜索并更新表格模型。
摘要由CSDN通过智能技术生成

 1、界面类

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

/*******************************************************************************
 *
 * @file: SearchSmsContentFrame.java
 * @date: 2007/09/26
 * @brief: 搜索类

 * @author: xuzhenqin
 * @version: 1.0.0
 ******************************************************************************/
public class SearchSmsContentFrame extends JFrame{
 
 JTable table = null;
 
 Vector vecHead = new Vector();
 
 Vector vecContent = new Vector();
 
 DefaultTableModel defaultModel = null;
 
 private JTextField textArea;
 
 public SearchSmsContentFrame() {
  init();
 }
 private void init() {
  setTitle("SearchSmsContentFrame");
  setSize(300, 200);
  addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) { <

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里是一个使用 Java Swing 和 JDBC 连接数据库后进行模糊查询的示例代码: ``` import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import javax.swing.table.*; public class FuzzyQueryExample extends JFrame { private JTextField queryTextField; private JTable resultTable; public FuzzyQueryExample() { super("Fuzzy Query Example"); // 创建 UI 组件 JLabel queryLabel = new JLabel("Enter a keyword to search:"); queryTextField = new JTextField(20); JButton queryButton = new JButton("Search"); resultTable = new JTable(); // 将组件添加到容器 JPanel controlPanel = new JPanel(new FlowLayout()); controlPanel.add(queryLabel); controlPanel.add(queryTextField); controlPanel.add(queryButton); JScrollPane resultScrollPane = new JScrollPane(resultTable); Container contentPane = getContentPane(); contentPane.add(controlPanel, BorderLayout.NORTH); contentPane.add(resultScrollPane, BorderLayout.CENTER); // 添加事件处理程序 queryButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { performQuery(); } }); // 设置窗口属性 setSize(400, 300); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } private void performQuery() { String keyword = queryTextField.getText().trim(); if (keyword.isEmpty()) { JOptionPane.showMessageDialog(this, "Please enter a keyword to search.", "Error", JOptionPane.ERROR_MESSAGE); return; } try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password")) { String sql = "SELECT * FROM products WHERE name LIKE ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, "%" + keyword + "%"); ResultSet rs = stmt.executeQuery(); DefaultTableModel model = new DefaultTableModel(); model.addColumn("ID"); model.addColumn("Name"); model.addColumn("Price"); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); double price = rs.getDouble("price"); model.addRow(new Object[] { id, name, price }); } resultTable.setModel(model); } catch (SQLException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Error executing query: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } public static void main(String[] args) { new FuzzyQueryExample(); } } ``` 这个示例程序包括一个带有文本框、按钮和表格的简单 UI。当用户点击按钮时,程序将从数据库查询包含指定关键字的记录,并将结果显示在表格。在这个示例,我们使用了 MySQL 数据库,但您可以根据需要替换为其他数据库。请确保已添加正确的 JDBC 驱动程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值