Java实战之用Swing实现通讯录管理系统

Java实战之用Swing实现通讯录管理系统

介绍

本文将讲解如何用Java Swing实现一个简单通讯录管理系统。Swing是Java提供的GUI工具包,它允许我们方便地创建窗口和组件,并为它们添加事件。本文将提供完整的攻略,包含创建GUI界面、使用SQLite作为数据库、添加事件处理程序、实现数据的CRUD操作等内容。

前置知识

在学习本文之前,你需要对Java语言和面向对象编程有一定的了解。同时,你需要知道如何创建GUI、添加事件处理程序、连接SQLite数据库等知识。

整体架构

  • 创建GUI界面
  • 连接SQLite数据库
  • 实现数据的CRUD操作
  • 添加事件处理程序

创建GUI界面

我们将使用Swing组件库创建GUI界面。包括创建窗口、文本框、按钮和表格等。

创建窗口和主要面板

// 创建窗口
JFrame frame = new JFrame("通讯录管理系统");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);

// 创建主要面板
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

// 添加主要面板到窗口
frame.add(panel);

添加输入框和按钮

// 创建输入框和按钮
JTextField nameField = new JTextField(20);
JButton addButton = new JButton("添加");

// 创建一个面板,包含输入框和按钮
JPanel addPanel = new JPanel();
addPanel.add(new JLabel("姓名:"));
addPanel.add(nameField);
addPanel.add(addButton);

// 将添加面板添加到主要面板
panel.add(addPanel);

添加表格

// 创建表格
String[] columns = {"ID", "姓名"};
DefaultTableModel model = new DefaultTableModel(columns, 0);
JTable table = new JTable(model);

// 添加表格到主要面板
panel.add(new JScrollPane(table));

连接SQLite数据库

我们将使用SQLite作为我们的数据库。SQLite是一个轻量级的关系型数据库,其文件格式为扩展名为.db的文件。Java中有多个SQLite驱动程序可供使用,我们在本文中将使用SQLiteJDBC。

// 加载SQLite JDBC驱动程序
Class.forName("org.sqlite.JDBC");

// 连接到数据库
String url = "jdbc:sqlite:address_book.db";
Connection conn = DriverManager.getConnection(url);

实现数据的CRUD操作

我们需要实现以下操作:

  • 创建表格
  • 插入记录
  • 查询全部记录
  • 更新记录
  • 删除记录

创建表格

// 创建表格的SQL语句
String sql = "CREATE TABLE IF NOT EXISTS address_book (\n"
             + "id INTEGER PRIMARY KEY AUTOINCREMENT,\n"
             + "name TEXT NOT NULL\n"
             + ");";

// 创建Statement执行SQL语句
Statement stmt = conn.createStatement();
stmt.execute(sql);

插入记录

// 插入记录的SQL语句
String sql = "INSERT INTO address_book (name) VALUES (?)";

// 创建PreparedStatement执行SQL语句
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, nameField.getText());
pstmt.executeUpdate();

查询全部记录

// 查询所有记录的SQL语句
String sql = "SELECT * FROM address_book";

// 创建Statement并执行SQL语句
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);

// 清空表格数据
model.setRowCount(0);

// 遍历结果集并添加到表格中
while (rs.next()) {
    Object[] row = { rs.getInt("id"), rs.getString("name") };
    model.addRow(row);
}

更新记录

// 更新记录的SQL语句
String sql = "UPDATE address_book SET name = ? WHERE id = ?";

// 创建PreparedStatement执行SQL语句
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, newName);
pstmt.setInt(2, id);
pstmt.executeUpdate();

删除记录

// 删除记录的SQL语句
String sql = "DELETE FROM address_book WHERE id = ?";

// 创建PreparedStatement执行SQL语句
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();

添加事件处理程序

我们需要为添加按钮、表格和窗口添加事件处理程序,以使得用户可以与数据进行交互。

添加按钮事件处理程序

addButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // 插入记录
        // 查询全部记录
    }
});

添加表格事件处理程序

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
    public void valueChanged(ListSelectionEvent e) {
        // 获取选中的行
        // 根据ID查询记录
        // 在输入框中显示记录
    }
});

添加窗口事件处理程序

frame.addWindowFocusListener(new WindowFocusListener() {
    public void windowGainedFocus(WindowEvent e) {
        // 查询全部记录
    }

    public void windowLostFocus(WindowEvent e) {
        // do nothing
    }
});

示例说明

示例1:添加新记录

  1. 在输入框中输入记录
  2. 点击添加按钮
  3. 表格中显示新记录

示例2:更新记录

  1. 选中表格中的记录
  2. 修改输入框中的文本
  3. 窗口失去焦点或点击更新按钮
  4. 表格中对应记录的文本被更新

总结

通过本文的学习,你应该了解如何使用Java Swing创建GUI界面,并在其中添加输入框、按钮和表格等组件。同时,你应该会使用SQLiteJDBC连接SQLite数据库,并实现数据的CRUD操作。最后,你应该会为Swing组件添加事件处理程序,以使得用户可以与数据进行交互。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实战之用Swing实现通讯录管理系统 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Java String字符串内容实现添加双引号

    Java String 类是一个经常使用的类, 它可用于存储字符串。但有时候我们需要在字符串中添加双引号,本文将为您介绍Java中添加双引号的几种方法。 方法一:手动添加双引号 如果只需要添加一个双引号,可以直接手动在字符串两侧添加双引号,如下所示: String str = "\"Hello World!\""; S…

    Java 2023年5月26日
    00
  • JSP自定义标签基础知识学习

    一、JSP自定义标签基础知识学习 JSP自定义标签是一个强大的工具,可以帮助Web开发人员更好的分离业务逻辑和展示形式,提高Web应用的可重用性和可维护性。在学习JSP自定义标签之前,我们需要先了解以下几个概念: 1.标签库文件(tld) 在使用自定义标签之前,需要先定义标签库文件(tld),其中包含了自定义标签的相关信息,如标签名、标签处理类、属性定义等。…

    Java 2023年6月15日
    00
  • Maven打包跳过测试的5种方式总结

    下面我将详细讲解“Maven打包跳过测试的5种方式总结”的完整攻略。 1. 前言 在开发中,经常需要使用 Maven 进行项目构建,在进行打包时,可能需要跳过测试,以加快构建速度,本文总结了 5 种 Maven 打包跳过测试的方式。 2. Maven 的默认行为 对于 Maven 而言,在执行项目构建时,默认情况下会进行测试,如果测试不通过,则会导致项目构建…

    Java 2023年5月19日
    00
  • Java中instance的用法详解

    Java中instance的用法详解 在Java中,instance是一个关键字,表示对象的实例。在本文中,我们将会详细讲解instance的用法,包括什么是instance、如何使用instance以及instance的常见应用场景。 什么是instance instance是一个关键字,表示对象的实例。在Java中,对象是类的一个实例,有着自己的属性和方…

    Java 2023年5月26日
    00
  • java使用POI实现html和word相互转换

    针对“java使用POI实现html和word相互转换”的问题,我来详细讲解一下。 一、实现思路 POI 是 Apache 开源的用于操作 Microsoft Office 二进制文件格式的 Java API,它可以读取和写入 Excel、Word 和 PowerPoint 等文件。利用 POI,我们可以方便地将 word 和 html 相互转换。 具体实现…

    Java 2023年5月20日
    00
  • IDEA创建Java项目导出Jar包运行

    下面是详细的步骤说明: 1. 创建Java项目 首先,我们需要创建一个Java项目。在IntelliJ IDEA中,可以通过以下步骤创建Java项目: 点击IDEA主界面左上角的 “File” -> “New Project” 在弹出的对话框中,选择 “Java” -> “Java Application” 在配置界面中,为项目命名,选择好路径之…

    Java 2023年5月26日
    00
  • 如何使用gradle将java项目推送至maven中央仓库

    如何使用Gradle将Java项目推送至Maven中央仓库 Gradle是一种流行的构建工具,可以帮助Java开发人员自动化和简化项目构建过程。Maven是另一个流行的构建工具,也是Java项目中最广泛使用的依赖管理工具之一。Maven中央仓库是一个公共的存储库,可以作为发布和共享Java库的地方。本文将介绍如何使用Gradle将Java项目推送至Maven…

    Java 2023年5月20日
    00
  • httpclient模拟post请求json封装表单数据的实现方法

    Httpclient模拟POST请求JSON封装表单数据的实现方法 什么是Httpclient? HttpClient是Apache下的一个开源项目,用于模拟浏览器请求,支持协议如下:HTTP、HTTPS、FTP、LDAP、SMTP。 为什么使用Httpclient模拟POST请求JSON封装表单数据? Httpclient模拟POST请求JSON封装表单数…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部