📜  使用 AWT 将学生信息存储在文件中的Java程序(1)

📅  最后修改于: 2023-12-03 15:22:09.550000             🧑  作者: Mango

使用 AWT 将学生信息存储在文件中的 Java 程序

简介

本文介绍一种使用 AWT (Abstract Window Toolkit)将学生信息存储在文件中的 Java 程序。程序运行时会弹出一个窗口,你可以在窗口中输入学生信息并保存到文件中。

代码介绍
导入依赖

程序中需要使用到 java.awt.*java.io.* 两个包,因此需要在文件开头导入这两个包。

import java.awt.*;
import java.io.*;
创建窗口

使用 Frame 类创建一个窗口。

Frame f = new Frame("Student Information");
创建文本框和按钮

窗口中需要包含多个文本框和按钮,我们可以使用 TextField 类和 Button 类来实现。

Label nameLabel = new Label("Name:");
TextField name = new TextField(20);
Label idLabel = new Label("ID:");
TextField id = new TextField(20);
Button saveButton = new Button("Save");
Button clearButton = new Button("Clear");
设置布局

通过 FlowLayout 类设置布局,使窗口中的组件可以居中对齐。

f.setLayout(new FlowLayout());
添加组件

将之前创建的文本框和按钮添加到窗口中。

f.add(nameLabel);
f.add(name);
f.add(idLabel);
f.add(id);
f.add(saveButton);
f.add(clearButton);
创建保存按钮的监听器

单击保存按钮时,程序会将学生姓名和学号保存到文件中。

class SaveListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        try {
            File file = new File("students.txt");
            FileWriter fw = new FileWriter(file, true);
            BufferedWriter bw = new BufferedWriter(fw);
            PrintWriter pw = new PrintWriter(bw);

            pw.println(name.getText() + "," + id.getText());

            pw.close();
            bw.close();
            fw.close();

            name.setText("");
            id.setText("");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}
创建清除按钮的监听器

单击清除按钮时,程序会清空文本框中的内容。

class ClearListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        name.setText("");
        id.setText("");
    }
}
添加监听器

将之前创建的监听器添加到按钮中。

saveButton.addActionListener(new SaveListener());
clearButton.addActionListener(new ClearListener());
显示窗口

最后,将窗口设为可见状态。

f.pack();
f.setVisible(true);
完整代码
import java.awt.*;
import java.io.*;

public class StudentInfo {

    public static void main(String[] args) {

        Frame f = new Frame("Student Information");

        Label nameLabel = new Label("Name:");
        TextField name = new TextField(20);
        Label idLabel = new Label("ID:");
        TextField id = new TextField(20);
        Button saveButton = new Button("Save");
        Button clearButton = new Button("Clear");

        f.add(nameLabel);
        f.add(name);
        f.add(idLabel);
        f.add(id);
        f.add(saveButton);
        f.add(clearButton);

        f.setLayout(new FlowLayout());

        class SaveListener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                try {
                    File file = new File("students.txt");
                    FileWriter fw = new FileWriter(file, true);
                    BufferedWriter bw = new BufferedWriter(fw);
                    PrintWriter pw = new PrintWriter(bw);

                    pw.println(name.getText() + "," + id.getText());

                    pw.close();
                    bw.close();
                    fw.close();

                    name.setText("");
                    id.setText("");
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }

        class ClearListener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                name.setText("");
                id.setText("");
            }
        }

        saveButton.addActionListener(new SaveListener());
        clearButton.addActionListener(new ClearListener());

        f.pack();
        f.setVisible(true);

    }
}
总结

本文介绍了一种使用 AWT 将学生信息存储在文件中的 Java 程序,其中涉及到创建窗口、添加组件、设置布局、创建监听器等内容。此程序只是简单地将学生信息保存到文本文件中,实际应用中可能需要保存到数据库中或者添加更多功能。