java+io+swing实现学生信息管理系统

Java+IO+Swing实现学生信息管理系统

学生信息管理系统是一款常见的管理工具,它可以帮助学校、老师或管理员轻松地管理学生的信息。本篇攻略将会使用Java语言结合IO和Swing技术来实现学生信息管理系统。

1. 项目搭建

首先打开你喜欢的IDE,选择新建Java项目,并添加Swing库。

java+io+swing实现学生信息管理系统

然后新建一个Main类,它将作为程序的入口点。接下来,创建一个Swing窗体并设置它的样式和布局,这个窗体就是我们的主页面。

public class Main extends JFrame {
    private JPanel contentPane;
    private JTextField textFieldName;
    private JTextField textFieldId;
    private JTextField textFieldAge;
    private JButton btnSave;
    private JButton btnLoad;

    public Main() {
        setTitle("学生信息管理系统");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);

        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel lblNewLabel = new JLabel("姓名");
        lblNewLabel.setBounds(38, 48, 54, 15);
        contentPane.add(lblNewLabel);

        JLabel lblNewLabel_1 = new JLabel("学号");
        lblNewLabel_1.setBounds(38, 90, 54, 15);
        contentPane.add(lblNewLabel_1);

        JLabel lblNewLabel_2 = new JLabel("年龄");
        lblNewLabel_2.setBounds(38, 131, 54, 15);
        contentPane.add(lblNewLabel_2);

        textFieldName = new JTextField();
        textFieldName.setBounds(123, 45, 185, 21);
        contentPane.add(textFieldName);
        textFieldName.setColumns(10);

        textFieldId = new JTextField();
        textFieldId.setBounds(123, 87, 185, 21);
        contentPane.add(textFieldId);
        textFieldId.setColumns(10);

        textFieldAge = new JTextField();
        textFieldAge.setBounds(123, 128, 185, 21);
        contentPane.add(textFieldAge);
        textFieldAge.setColumns(10);

        btnSave = new JButton("保存");
        btnSave.setBounds(38, 182, 93, 23);
        contentPane.add(btnSave);

        btnLoad = new JButton("读取");
        btnLoad.setBounds(215, 182, 93, 23);
        contentPane.add(btnLoad);
    }

    public static void main(String[] args) {
        Main frame = new Main();
        frame.setVisible(true);
    }
}

你会发现,我们创建了一个JFrame类型的对象,并在构造方法里设置了它的一些属性,如标题、大小、布局等。同时,我们也设置了一个form表单,并添加了一些标签和输入框,以及保存和读取按钮。

接下来,我们需要添加一些事件,使这些按钮可以响应用户的操作。同时,也需要为保存和读取按钮添加一些实际内容的逻辑。

2. 添加事件和逻辑

在Main类中,添加如下方法:

private void initEvent() {
    btnSave.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            saveFile(textFieldName.getText(), textFieldId.getText(), textFieldAge.getText());
        }
    });

    btnLoad.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String[] strs = readFile();
            textFieldName.setText(strs[0]);
            textFieldId.setText(strs[1]);
            textFieldAge.setText(strs[2]);
        }
    });
}

private void saveFile(String name, String id, String age) {
    File file = new File("data.txt");
    String data = name + "," + id + "," + age;

    try {
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(data.getBytes());
        fos.flush();
        fos.close();
        JOptionPane.showMessageDialog(null, "保存成功");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private String[] readFile() {
    File file = new File("data.txt");
    String data = "";

    try {
        FileInputStream fis = new FileInputStream(file);
        byte[] buffer = new byte[fis.available()];
        fis.read(buffer);
        fis.close();
        data = new String(buffer);
    } catch (IOException e) {
        e.printStackTrace();
    }

    return data.split(",");
}

我们首先在initEvent方法中,为保存和读取按钮添加了ActionListener。这个监听器会在用户点击按钮时执行所提供的事件。

接着,saveFile方法会将表单中填写的信息保存到一个名为data.txt的文本文件中。这里我们使用了FileOutputStream类来操作文件输出流。

而readFile方法则是从文件中读取保存的信息。这里我们使用了FileInputStream类来操作文件输入流,将数据读取到内存中后通过split方法进行拆分,最终返回一个字符串数组。

3. 测试

现在项目已经完成,可以运行程序并测试它的功能。在Main类中,添加如下代码:

public Main() {
    // ...
    initEvent();
    String[] strs = readFile();
    textFieldName.setText(strs[0]);
    textFieldId.setText(strs[1]);
    textFieldAge.setText(strs[2]);
}

这里我们在程序启动后直接读取文件,并将文件中已保存的信息显示到表单上。

java+io+swing实现学生信息管理系统

结合上述操作,我们可以使用Java语言结合IO和Swing编写一个简单的学生信息管理系统。在实际开发中,可以添加更多的功能和模块,以满足实际需要。

例子1:Java实现学生信息管理系统

例子2:Java+MySQL实现学生信息管理系统

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java+io+swing实现学生信息管理系统 - Python技术站

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

相关文章

  • Java如何构造DSL方法重构

    Java的DSL(Domain-Specific Language,领域特定语言)能够让我们更加方便地描述、操作特定领域的问题。在Java中构造DSL的一种方法是使用方法重构(method chaining)技术。 方法重构是一种允许连续调用多个方法的技术。在Java中,这通常是通过每个方法都返回对象本身的实例来实现的。说得更简单一些,就是每次调用一个方法,…

    Java 2023年5月26日
    00
  • Java压缩文件操作详解

    非常感谢您来到我们的网站!我很高兴能为您提供有关“Java压缩文件操作详解”的完整攻略。 一、概述 在Java编程中,处理大量的文件和文件夹是一个很常见的需求。为了方便和提高效率,许多时候我们需要对多个文件或文件夹进行压缩,将它们打包成一个文件,以减少文件的数量和占用空间。 Java提供了很多操作压缩文件的类和方法,其中最常用的是 java.util.zip…

    Java 2023年5月20日
    00
  • SpringDataJpa的@Query注解报错的解决

    当使用Spring Data JPA进行数据库操作时,我们可以使用@Query注解在Repository接口中定义自定义SQL语句,但有时会出现@Query注解报错的情况。下面是一份详细的攻略,帮助大家解决@Query报错的问题。 问题描述 在使用@Query注解时,可能会出现以下两种错误: 语法错误 当我们在@Query注解中定义SQL语句时,如果存在语法…

    Java 2023年5月20日
    00
  • Mybatis中resultMap标签和sql标签的设置方式

    Mybatis是一款优秀的ORM框架,其中resultMap标签和sql标签的设置方式可以让我们更好地管理SQL语句和查询结果的映射关系。下面就详细讲解一下这两个标签的使用方式。 resultMap标签的设置方式 resultMap标签用于定义查询结果和Java对象的映射关系,我们通常可以用它来解决查询表中字段名和Java属性名不完全匹配的情况。result…

    Java 2023年5月20日
    00
  • 基于Java实现双向链表

    实现双向链表的步骤 1. 定义链表节点类 双向链表的节点类需要有三个属性: data: 保存节点所存放的数据。 prev: 保存上一个节点的引用。 next: 保存下一个节点的引用。 以下是这个节点类的简单实现: public class Node { public int data; public Node prev; public Node next; …

    Java 2023年5月19日
    00
  • 转载一个别人收藏的精典网站Ruby,HIBERNATE相关

    关于“转载一个别人收藏的精典网站Ruby,HIBERNATE相关”的完整攻略,我会按照以下步骤进行详细讲解: 1. 确定转载目的 在转载一篇文章之前,我们需要明确自己的转载目的。是为了丰富自己的博客内容,还是为了分享给更多人?这一点很重要,因为它将决定你应该如何进行转载。 2. 征求原作者许可 在转载别人的文章之前,最重要的是要获得原作者的授权,否则可能会引…

    Java 2023年5月20日
    00
  • java编程实现邮件定时发送的方法

    下面我来详细讲解“Java编程实现邮件定时发送的方法”的完整攻略。 1. 邮件发送 JavaMail 是 Java 中用于发送和接收邮件的 API。在使用 JavaMail 发送邮件之前需要导入相关的库。下面是这个库的 dependency: <dependency> <groupId>com.sun.mail</groupId…

    Java 2023年6月1日
    00
  • JavaScript中的return布尔值的用法和原理解析

    关于“JavaScript中的return布尔值的用法和原理解析”,我会给你进行详细讲解: 布尔类型 在JavaScript中,布尔类型是一种常用的数据类型,表示真(true)或假(false)。它主要用于条件判断和逻辑运算。 在JavaScript中,布尔类型的值只有两个:true和false。其中,true表示真,它可以被认为是1;false表示假,它可…

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