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日

相关文章

  • spring boot 使用utf8mb4的操作

    下面是详细讲解 “spring boot 使用utf8mb4的操作”的完整攻略: 什么是utf8mb4? UTF-8 是一种针对Unicode的可变长度字符编码,也是一种前缀码。UTF-8使用一至四个字节编码UNICODE字符。在UTF-8中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节,而emoji表情等一些非常规的字符则会被编码为四个字节。然…

    Java 2023年6月16日
    00
  • jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码

    下面就针对“jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码”的完整攻略进行详细讲解。 1. 简介 ajaxSubmit()是jQuery插件中的一个方法,可以对form表单进行异步上传,常用于表单提交过程中使用,同时也可以进行文件上传的操作。在上传文件的过程中,需要将form表单中的数据也一并提交到后台。 2. 示例代码 下面给出一…

    Java 2023年6月15日
    00
  • MyBatis的五种批量查询实例总结

    MyBatis的五种批量查询实例总结 1. 需要批量查询的场景 在实际的开发中,我们常常会遇到需要批量查询数据的场景,如查询一个部门下所有的员工信息、查询某个账户下所有的交易明细信息等等。这些场景中,我们需要查询的数据量比较大,单次查询的效率较低,因此需要采用批量查询的方式来提高查询效率。 2. MyBatis的五种批量查询实例 下面我们介绍MyBatis的…

    Java 2023年5月20日
    00
  • Java判断字符串回文的代码实例

    下面是Java判断字符串回文的代码实例的完整攻略: 1. 什么是回文字符串? 回文字符串指的是正着读和倒着读都一样的字符串,比如 “level”,”noon” 等等。 2. 判断一个字符串是否是回文字符串的思路 判断字符串是否回文,很容易就能想到可以将该字符串反转,判断反转后的字符串是否和原字符串相等即可。但是,这种方法比较耗时,还有一种更简单的方法:从字符…

    Java 2023年5月27日
    00
  • 常见的JVM参数有哪些?

    当我们运行Java程序时,JVM参数可以通过命令行传入,用于控制程序的行为和性能。下面介绍一些常用的JVM参数及其用法。 JVM参数列表 以下为常见的JVM参数列表: -Xmx: 设置Java堆内存的最大值 -Xms: 设置Java堆内存的初始值 -Xss: 设置线程栈的大小 -XX:PermSize: 设置永久代的初始值 -XX:MaxPermSize: …

    Java 2023年5月10日
    00
  • Java中的OpenJDK使用原理

    Java中的OpenJDK使用原理 OpenJDK是一个免费开源的Java开发工具包,由于其免费且开源的特性,越来越多的Java开发者开始使用OpenJDK,那么如何使用OpenJDK呢?下面是详细的使用攻略: 安装OpenJDK 在使用OpenJDK之前,需要先安装OpenJDK,下面以CentOS 7为例,介绍安装OpenJDK的方法(其他系统可以自行搜…

    Java 2023年5月19日
    00
  • Java中session存储Users对象实现记住密码

    当我们使用Java web开发时,常使用session来存储用户的信息以便在整个会话期间使用。如果想要实现记住密码功能,则需要将用户的用户名与密码存储在session对象中,并设置session的有效时间。下面是实现过程的完整攻略。 第一步:创建一个登录页面 首先我们需要创建一个登录页面,该页面包含一个用户名和密码的输入框以及一个“记住密码”的复选框。当用户…

    Java 2023年5月20日
    00
  • 详解基于Spring Data的领域事件发布

    以下是《详解基于Spring Data的领域事件发布》的完整攻略: 1. 概述 领域事件 领域事件是指在领域中发生的一些重要操作或数据变化,如订单创建、库存减少等。它们可以触发其他业务逻辑,也可以被其他业务逻辑订阅并处理。 Spring Data Spring Data 是 Spring 社区为简化数据库访问和实现数据持久化的开源框架。它提供了丰富的 API…

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