0


Eclipse+Java+Swing实现学生信息管理系统-TXT存储信息

一、系统介绍

1.开发环境

操作系统:Win10

开发工具 :Eclipse2021

JDK版本:jdk1.8

存储方式:Txt文件存储

2.技术选型

Java+Swing+Txt

3.功能模块

4.工程结构

5.系统功能

1.系统登录

管理员可以登录系统。

2.教师-查看学生

教师可以查看单个学生信息或全部学生信息。

3.教师-新增学生

教师可以新增学生信息。

4.教师-修改学生

教师可以修改学生信息。

5.教师-删除学生

教师可以删除学生信息。

6.学生-查看学生

学生可以查看单个学生信息或全部学生信息。

二、系统展示

1.登录页面

2.操作页面

3.教师-管理学生

4.教师-学生明细

5.学生-查看学生

6.学生-学生明细

三、部分代码

LoginFirstFrame

package com.sjsq.view;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
/**
 * 
 * 管理员登录
 *
 */
public class LoginFirstFrame extends JFrame implements ActionListener {
    // 想要实现监听功能就要重写接口ActionListener
    private static final long serialVersionUID = 1L;
    private JPanel jp1, jp2, jp3;
    private JButton jb1, jb2;
    private JLabel jl1, jl2;
    private JTextField jtf;
    private JPasswordField jpf;
    private Icon welcomeIcon = new ImageIcon("welcome.png");
    private JLabel lbWelcome = new JLabel(welcomeIcon);

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new LoginFirstFrame();
    }

    public LoginFirstFrame() {

        this.add(lbWelcome);
        this.setTitle("用户登录");
        // Box.createVerticalStrut(100);
        this.setSize(600, 400); // 通过这里可以调整界面的大小
        this.setLocation(800, 300);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setLayout(new GridLayout(4, 1));
        jp1 = new JPanel();
        jl1 = new JLabel("账户:");
        jtf = new JTextField(20);
        jp1.add(jl1);
        jp1.add(jtf);
        this.add(jp1);

        jp2 = new JPanel();
        jl2 = new JLabel("密码:");
        jpf = new JPasswordField(20);
        jp2.add(jl2);
        jp2.add(jpf);
        this.add(jp2);

        jp3 = new JPanel();
        jb1 = new JButton("登录");
        jb2 = new JButton("退出");
        jp3.add(jb1);
        jp3.add(jb2);
        this.add(jp3);

        this.setVisible(true);
        System.out.println(jtf.getText().toString());
        // 增加监听
        jb1.addActionListener((ActionListener) this);
        jb2.addActionListener((ActionListener) this);

    }

    public void actionPerformed(ActionEvent e) {

        if (e.getSource() == jb1) {// 如果点击的是"登陆"的button,则对账号密码进行判断
            String account = jtf.getText();
            String password = new String(jpf.getPassword());
            // FileOpe.getInfoByAccount(account);
            if (account.equals("admin") && password.equals("admin")) {
                JOptionPane.showMessageDialog(this, "登录成功");
                this.dispose();
                new LoginFrame();
            } else {
                JOptionPane.showMessageDialog(this, "登录失败");
                System.out.println(account + password);
                return;
            }
        } else if (e.getSource() == jb2) {// 如果点击的是"退出"的button那么就直接退出程序
            JOptionPane.showMessageDialog(this, "谢谢光临");
            System.exit(0);
        }
    }
}

LoginFrame

package com.sjsq.view;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
 * 登录界面
 * @author 陈娟
 * @author shuijianshiqing
 *
 */
public class LoginFrame extends JFrame implements ActionListener {

    // 重写接口实现监听
    private static final long serialVersionUID = 1L;
    // 定义组件
    JFrame frame = new JFrame();
    JPanel jp1, jp2, jp3;// 面板
    JLabel jlb1, jlb2;// 标签
    JButton jb1, jb2;// 按钮

    // 构造函数
    public LoginFrame() {
        // 创建面板
        jp1 = new JPanel();
        jp2 = new JPanel();
        jp3 = new JPanel();
        // 创建标签
        jlb1 = new JLabel("选择操作界面");

        // 创建按钮
        jb1 = new JButton("老师");
        jb2 = new JButton("学生");

        // 设置布局管理
        frame.setLayout(new GridLayout(3, 1));// 网格式布局

        // 加入各个组件
        jp1.add(jlb1);

        jp3.add(jb1);
        jp3.add(jb2);

        // 加入到JFrame
        frame.add(jp2);
        frame.add(jp1);
        // this.add(jp2);
        frame.add(jp3);

        // 设置窗体
        frame.setTitle("用户登录界面");// 窗体标签
        frame.setSize(400, 300);// 窗体大小
        frame.setLocationRelativeTo(null);// 在屏幕中间显示(居中显示)
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 退出关闭JFrame
        frame.setVisible(true);// 显示窗体

        // 增加监听

        jb1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(false);
                new ManagerLoginFrame();// 老师权限的界面
            }
        });

        jb2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(false);
                new StudentLoginFrame();// 学生权限的界面
            }
        });

    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }
}

ManagerLoginFrame

package com.sjsq.view;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import com.sjsq.dao.StudentDao;
import com.sjsq.entity.Student;

/**
 * 教师登录后的主页
 * @author 陈娟
 * @author shuijianshiqing
 *
 */
public class ManagerLoginFrame extends JFrame implements ActionListener{
    
    
    private static final long serialVersionUID = 1L;

    StudentDao fun = new StudentDao();

    // 定义组件
    JLabel lb1 = new JLabel("教师操作界面");// JLabel 对象可以显示文本、图像
    JLabel lb2 = new JLabel("提示:录入前请先输入学号,修改、删除根据学号修改信息\r\n");

    JTextField 学号, 姓名, 年龄, 电话号码, 家庭住址, 身份证号码;// 输入学生基本信息得文本
    JRadioButton 男, 女;// 声明单选项对象,性别选择
    ButtonGroup group = null;// 声明按钮组
    JButton 录入, 查询, 删除, 修改, 显示, 返回;// 声明相应的操作的按钮
    JPanel p1, p2, p3, p4, p5, p6, p7, pv, ph, pb;// 调节布局的通道

    public ManagerLoginFrame() { // 负责管理员登录的主窗口
        super("学生信息管理系统");
        学号 = new JTextField(18);// 创建文本信息的的对象
        姓名 = new JTextField(18);
        电话号码 = new JTextField(18);
        年龄 = new JTextField(18);
        家庭住址 = new JTextField(18);
        身份证号码 = new JTextField(18);

        group = new ButtonGroup();
        男 = new JRadioButton("男");// 初始化单选框,
        女 = new JRadioButton("女");
        group.add(男);// 把按钮添加到按钮组
        group.add(女);
        录入 = new JButton("增加学生信息");// 创建按钮对象
        查询 = new JButton("查询学生信息");
        删除 = new JButton("删除学生信息");
        修改 = new JButton("修改学生信息");
        显示 = new JButton("显示全部学生信息");
        返回 = new JButton("返回");

        pb = new JPanel();
        pb.add(lb1, JLabel.CENTER);

        p1 = new JPanel();// 创建一个面板

        //p1.add(lb2, JLabel.CENTER);
        p1.add(new JLabel("学生学号:", JLabel.CENTER));// JLabel.CENTER是指JLabel的中心点。CENTER是中心点的坐标
        p1.add(学号);

        p2 = new JPanel();
        p2.add(new JLabel("学生姓名:", JLabel.CENTER));
        p2.add(姓名);
        p3 = new JPanel();
        p3.add(new JLabel("学生性别:", JLabel.CENTER));
        p3.add(男);
        p3.add(女);
        p4 = new JPanel();
        p4.add(new JLabel("学生年龄:", JLabel.CENTER));
        p4.add(年龄);
        p5 = new JPanel();
        p5.add(new JLabel("电话号码:", JLabel.CENTER));
        p5.add(电话号码);
        p6 = new JPanel();
        p6.add(new JLabel("家庭住址:", JLabel.CENTER));
        p6.add(家庭住址);
        p7 = new JPanel();
        p7.add(new JLabel("身份证号:", JLabel.CENTER));
        p7.add(身份证号码);

        pv = new JPanel();// 面板
        pv.setLayout(new GridLayout(7, 1)); // 把pv组件设置成第七行1列的网格布局

        pv.add(p1);// 把面板放到容器中,add()代表容器
        pv.add(p2);
        pv.add(p3);
        pv.add(p4);
        pv.add(p5);
        pv.add(p6);
        pv.add(p7);

        ph = new JPanel();
        ph.add(录入);
        ph.add(查询);
        ph.add(修改);
        ph.add(删除);
        ph.add(显示);
        ph.add(返回);

        Container con = getContentPane();// 建立容器对象con,取得容器面板
        con.setLayout(new BorderLayout());// 设置布局为边框布局,边框布局分东南西北中5个方位来添加控件。
        // 若没有指定方位,将添加到中间,上下左右都可以扩展
        con.add(pb, BorderLayout.NORTH);// Frame对象lb调用方法add(),lb放在最北上方
        con.add(pv, BorderLayout.CENTER);// pv在中间
        con.add(ph, BorderLayout.SOUTH);// ph在南边
        setDefaultCloseOperation(EXIT_ON_CLOSE);// 置一个默认的关闭操作,也就是你的JFrame窗口的关闭按钮,点击它时,退出程序
        //setBounds(100, 100, 900, 450);// setBounds(x,y,width,height); x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度
        setSize(900, 450);// 窗体大小                                // height:组件的高度
        setLocationRelativeTo(null);// 在屏幕中间显示(居中显示)
        setVisible(true);// 目的是使控件可以显示出来,如果该控件已经被显示出来

        Student stu = new Student();
        @SuppressWarnings("unused")
        ArrayList<Student> arry = new ArrayList<Student>();
        // 添加监听
        // 点击录入按钮 学号","姓名","性别","年龄","电话号码","家庭住址","身份证号码"
        录入.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String sID = 学号.getText(); // 获取文本框中内容
                if (fun.find(sID) != -1) {
                    JOptionPane.showMessageDialog(null, "该学号对应的学生已经存在!!!\n\n请重新输入或者修改已经录入的学生");
                    // 清空文本框
                    学号.setText("");
                    姓名.setText("");
                    年龄.setText("");
                    电话号码.setText("");
                    家庭住址.setText("");
                    身份证号码.setText("");
                    return;
                }
                String sname = 姓名.getText();
                // 先判断学号和姓名是否为空,如果为空,直接退出
                if (sID.equals("") || sname.equals("")) {
                    JOptionPane.showMessageDialog(null, "录入的学生学号或姓名为空!!!\n\n请重新输入");
                    return;
                }
                String sage = 年龄.getText();
                if (sage.equals(""))// 年龄为空,没有输入
                    sage = "--";
                String scall = 电话号码.getText();
                if (scall.equals(""))
                    scall = "--";
                String shome = 家庭住址.getText();
                if (shome.equals(""))
                    shome = "--";
                String siden = 身份证号码.getText();
                if (siden.equals(""))
                    siden = "--";
                String ssex = null;
                if (男.isSelected()) {// 选择男女
                    ssex = 男.getText();
                } else {
                    ssex = 女.getText();
                }

                stu.setStuid(sID);
                stu.setAge(sage);
                stu.setName(sname);
                stu.setSex(ssex);
                stu.setCallnumber(scall);
                stu.setHomeplace(shome);
                stu.setIdentityid(siden);

                // arry.clear();// 清除原数组列表中的数据
                // Input input=new Input(stu);
                System.out.println("信息管理员");
                System.out.println(stu.fileString());

                fun.add(stu);
                fun.writefile();

                JOptionPane.showMessageDialog(null, "录入成功!!!");
                // dispose();
                setVisible(false);
                new ManagerLoginFrame();

            }
        });

        // 显示全部学生信息
        显示.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // show_stuall all=new show_stuall();
                new ShowAllStudentFrame();
            }
        });

        // 查询某个学生信息
        查询.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String sID = 学号.getText(); // 获取文本框中内容
                if (sID.equals(""))
                    sID = "--";
                String sname = 姓名.getText();
                if (sname.equals(""))
                    sname = "--";
                String sage = 年龄.getText();
                if (sage.equals("")) // 年龄为空,没有输入
                    sage = "--";
                String scall = 电话号码.getText();
                if (scall.equals(""))
                    scall = "--";
                String shome = 家庭住址.getText();
                if (shome.equals(""))
                    shome = "--";
                String siden = 身份证号码.getText();
                if (siden.equals(""))
                    siden = "--";
                String ssex = null;
                if (男.isSelected()) {// 选择男女
                    ssex = 男.getText();
                } else {
                    if (女.isSelected())
                        ssex = 女.getText();
                    else {
                        ssex = "--";
                    }
                }
                // 将要查询的符合条件的写入文件
                FileWriter fw = null;
                BufferedWriter out = null;// 学号","姓名","性别","年龄","电话号码","家庭住址","身份证号码" };
                try {
                    fw = new FileWriter("查询时暂时存放的文件.txt");
                    out = new BufferedWriter(fw);
                    // 姓名学号等中间隔一个空格
                    out.write(sID + "  ");
                    out.write(sname + "  ");
                    out.write(ssex + "  ");
                    out.write(sage + "  ");
                    out.write(scall + "  ");
                    out.write(shome + "  ");
                    out.write(siden + "  "); // 每次覆盖写入,无需全部保存

                    out.close();
                    fw.close();

                } catch (IOException e1) {
                    e1.printStackTrace();

                }
                // 开始查询
                new ShowOneStudentFrame();

                // 清空文本框
                学号.setText("");
                姓名.setText("");
                年龄.setText("");
                电话号码.setText("");
                家庭住址.setText("");
                身份证号码.setText("");
                group.clearSelection();

            }
        });

        // 删除学生信息,按学号删除
        删除.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String sID = 学号.getText(); // 获取文本框中内容
                int flag = fun.find(sID);
                if (flag == -1) {
                    JOptionPane.showMessageDialog(null, "未查找到该学号的学生!!!\n\n请重新输入");
                } else {
                    fun.delete(sID);
                    fun.writefile();
                    JOptionPane.showMessageDialog(null, "删除成功!!!\n");
                }

                // 清空文本框
                学号.setText("");
                姓名.setText("");
                年龄.setText("");
                电话号码.setText("");
                家庭住址.setText("");
                身份证号码.setText("");
                group.clearSelection();

            }
        });

        // 修改学生信息
        修改.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String sID = 学号.getText(); // 获取文本框中内容
                int flag = fun.find(sID); // 查找是否存在
                if (flag == -1) {
                    JOptionPane.showMessageDialog(null, "未查找到该学号的学生!!!\n\n请重新输入");
                    return;
                } else
                    JOptionPane.showMessageDialog(null, "该系统中存在该学生数据\n\n,确认返回后请输入需要修改后的数据");

                String sage = 年龄.getText();
                if (sage.equals(""))// 年龄为空,没有输入
                    sage = "--";
                String scall = 电话号码.getText();
                if (scall.equals(""))
                    scall = "--";
                String shome = 家庭住址.getText();
                if (shome.equals(""))
                    shome = "--";
                String siden = 身份证号码.getText();
                if (siden.equals(""))
                    siden = "--";
                String ssex = null;
                if (男.isSelected()) {// 选择男女
                    ssex = 男.getText();
                } else {
                    ssex = 女.getText();
                }
                String sname = 姓名.getText();
                // 先判断学号和姓名是否为空,如果为空,直接退出
                if (sname.equals("")) {
                    JOptionPane.showMessageDialog(null, "录入的学生姓名为空!!!\n\n请重新输入");
                    return;
                }
                // Student stu=new Student();
                stu.setStuid(sID);
                stu.setAge(sage);
                stu.setName(sname);
                stu.setSex(ssex);
                stu.setCallnumber(scall);
                stu.setHomeplace(shome);
                stu.setIdentityid(siden);

                fun.update(stu); // 修改
                fun.writefile();
                JOptionPane.showMessageDialog(null, "修改成功!!!");
                // 清空文本框
                学号.setText("");
                姓名.setText("");
                年龄.setText("");
                电话号码.setText("");
                家庭住址.setText("");
                身份证号码.setText("");
                group.clearSelection();
            }
        });

        返回.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                setVisible(false); // 目的是使控件不可以显示出来
                new LoginFrame();
            }
        });
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

    }
    
    public static void main(String[] args) {
        new ManagerLoginFrame();
    }
}

StudentLoginFrame

package com.sjsq.view;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import com.sjsq.entity.Student;
/**
 * 学生登录后的主页
 * @author 陈娟
 * @author shuijianshiqing
 *
 */
public class StudentLoginFrame extends JFrame implements ActionListener {
    private static final long serialVersionUID = 1L;
    // Function fun = new Function();
    // 定义组件
    JLabel lb1 = new JLabel("学生操作界面");// JLabel 对象可以显示文本、图像
    JLabel lb2 = new JLabel("提示:录入前请先输入学号,修改、删除根据学号修改信息");
    JTextField 学号, 姓名, 年龄, 电话号码, 家庭住址, 身份证号码;// 输入学生基本信息得文本
    JRadioButton 男, 女;// 声明单选项对象,性别选择
    ButtonGroup group = null;// 声明按钮组
    JButton 录入, 查询, 删除, 修改, 显示, 返回;// 声明相应的操作的按钮
    JPanel p1, p2, p3, p4, p5, p6, p7, pv, ph, pb;// 调节布局的通道

    Student stu = new Student();
    ArrayList<Student> arry = new ArrayList<>();

    public StudentLoginFrame() { // 负责管理员登录的主窗口
        super("学生信息管理系统");
        学号 = new JTextField(18);// 创建文本信息的的对象
        姓名 = new JTextField(18);
        电话号码 = new JTextField(18);
        年龄 = new JTextField(18);
        家庭住址 = new JTextField(18);
        身份证号码 = new JTextField(18);

        group = new ButtonGroup();
        男 = new JRadioButton("男");// 初始化单选框,
        女 = new JRadioButton("女");
        group.add(男);// 把按钮添加到按钮组
        group.add(女);
        // 录入=new JButton("增加学生信息");//创建按钮对象
        查询 = new JButton("查询某个学生信息");
        // 删除=new JButton("删除学生信息");
        // 修改.setEnabled(false); //设置修改控件不可用
        // 修改=new JButton("修改学生信息");
        显示 = new JButton("显示全部学生信息");
        返回 = new JButton("返回");

        pb = new JPanel();
        pb.add(lb1, JLabel.CENTER);

        p1 = new JPanel();// 创建一个面板
        // p1.setLayout(new GridLayout(3,0));
        //p1.add(lb2, JLabel.CENTER);
        p1.add(new JLabel("学生学号:", JLabel.CENTER));// JLabel.CENTER是指JLabel的中心点。CENTER是中心点的坐标
        p1.add(学号);

        p2 = new JPanel();
        p2.add(new JLabel("学生姓名:", JLabel.CENTER));
        p2.add(姓名);
        p3 = new JPanel();
        p3.add(new JLabel("学生性别:", JLabel.CENTER));
        p3.add(男);
        p3.add(女);
        p4 = new JPanel();
        p4.add(new JLabel("学生年龄:", JLabel.CENTER));
        p4.add(年龄);
        p5 = new JPanel();
        p5.add(new JLabel("电话号码:", JLabel.CENTER));
        p5.add(电话号码);
        p6 = new JPanel();
        p6.add(new JLabel("家庭住址:", JLabel.CENTER));
        p6.add(家庭住址);
        p7 = new JPanel();
        p7.add(new JLabel("身份证号:", JLabel.CENTER));
        p7.add(身份证号码);

        pv = new JPanel();// 面板
        pv.setLayout(new GridLayout(7, 1)); // 把pv组件设置成第七行1列的网格布局

        pv.add(p1);// 把面板放到容器中,add()代表容器
        pv.add(p2);
        pv.add(p3);
        pv.add(p4);
        pv.add(p5);
        pv.add(p6);
        pv.add(p7);

        ph = new JPanel();
        // ph.add(录入);
        ph.add(查询);
        // ph.add(修改);
        // ph.add(删除);
        ph.add(显示);
        ph.add(返回);

        Container con = getContentPane();// 建立容器对象con,取得容器面板
        con.setLayout(new BorderLayout());// 设置布局为边框布局,边框布局分东南西北中5个方位来添加控件。
        // 若没有指定方位,将添加到中间,上下左右都可以扩展
        con.add(pb, BorderLayout.NORTH);// Frame对象lb调用方法add(),lb放在最北上方
        con.add(pv, BorderLayout.CENTER);// pv在中间
        con.add(ph, BorderLayout.SOUTH);// ph在南边
        setDefaultCloseOperation(EXIT_ON_CLOSE);// 置一个默认的关闭操作,也就是你的JFrame窗口的关闭按钮,点击它时,退出程序
        //setBounds(100, 100, 900, 450);// setBounds(x,y,width,height); x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度
        setSize(900, 450);// 窗体大小                                // height:组件的高度
        setLocationRelativeTo(null);// 在屏幕中间显示(居中显示)                                
        setVisible(true);// 目的是使控件可以显示出来,如果该控件已经被显示出来

        // 添加监听
        // 显示全部学生信息
        显示.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                new ShowAllStudentFrame();

            }
        });

        // 查询某个学生信息
        查询.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String sID = 学号.getText(); // 获取文本框中内容
                if (sID.equals(""))
                    sID = "--";
                String sname = 姓名.getText();
                if (sname.equals(""))
                    sname = "--";
                String sage = 年龄.getText();
                if (sage.equals("")) // 年龄为空,没有输入
                    sage = "--";
                String scall = 电话号码.getText();
                if (scall.equals(""))
                    scall = "--";
                String shome = 家庭住址.getText();
                if (shome.equals(""))
                    shome = "--";
                String siden = 身份证号码.getText();
                if (siden.equals(""))
                    siden = "--";
                String ssex = null;
                if (男.isSelected()) {// 选择男女
                    ssex = 男.getText();
                } else {
                    if (女.isSelected())
                        ssex = 女.getText();
                    else {
                        ssex = "--";
                    }
                }

                // 将要查询的符合条件的写入文件
                FileWriter fw = null;
                BufferedWriter out = null; // 学号","姓名","性别","年龄","电话号码","家庭住址","身份证号码" };
                try {
                    fw = new FileWriter("查询时暂时存放的文件.txt");
                    out = new BufferedWriter(fw);
                    // 姓名学号等中间隔一个空格
                    out.write(sID + "  ");
                    out.write(sname + "  ");
                    out.write(ssex + "  ");
                    out.write(sage + "  ");
                    out.write(scall + "  ");
                    out.write(shome + "  ");
                    out.write(siden + "  "); // 每次覆盖写入,无需全部保存

                    out.close();
                    fw.close();

                } catch (IOException e1) {
                    e1.printStackTrace();

                }
                // 开始查询
                new ShowOneStudentFrame();

                // 清空文本框
                学号.setText("");
                姓名.setText("");
                年龄.setText("");
                电话号码.setText("");
                家庭住址.setText("");
                身份证号码.setText("");
                group.clearSelection();

            }
        });

        返回.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                setVisible(false); // 目的是使控件不可以显示出来
                new LoginFrame();
            }
        });
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }
    
    public static void main(String[] args) {
        new StudentLoginFrame();
    }
}

ShowAllStudentFrame

package com.sjsq.view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.RowSorter;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

/**
 * 
 * 显示所有学生信息
 * 
 * @author 陈娟
 * @author shuijianshiqing
 *
 */
@SuppressWarnings("unused")
public class ShowAllStudentFrame {
    JTable table = null;
    DefaultTableModel model = null;

    // 显示全部学生信息
    @SuppressWarnings("unchecked")
    public ShowAllStudentFrame() {
        JFrame jf = new JFrame("显示全部学生信息(点击表头可以按照升序降序排序)");
        // 创建内容面板
        JPanel panel = new JPanel();
        // 表头(列名)
        @SuppressWarnings("rawtypes")
        Vector columnNames = createColumnNames();
        @SuppressWarnings("rawtypes")
        Vector data = createTableModelData();
        // 创建一个默认的表格模型
        model = new DefaultTableModel(data, columnNames);
        table = new JTable(model);
        table.setPreferredScrollableViewportSize(new Dimension(400, 80));
        JScrollPane tablePanel = new JScrollPane(table);
        // 设置表格内容颜色
        table.setForeground(Color.BLACK); // 字体颜色
        table.setFont(new Font(null, Font.PLAIN, 14)); // 字体样式
        table.setSelectionForeground(Color.DARK_GRAY); // 选中后字体颜色
        table.setSelectionBackground(Color.LIGHT_GRAY); // 选中后字体背景
        table.setGridColor(Color.GRAY); // 网格颜色

        // 设置表头
        table.getTableHeader().setFont(new Font(null, Font.BOLD, 14)); // 设置表头名称字体样式
        table.getTableHeader().setForeground(Color.RED); // 设置表头名称字体颜色
        table.getTableHeader().setResizingAllowed(false); // 设置不允许手动改变列宽
        table.getTableHeader().setReorderingAllowed(false); // 设置不允许拖动重新排序各列

        // 设置行高
        table.setRowHeight(40);

        // 第一列列宽设置为40
        table.getColumnModel().getColumn(0).setPreferredWidth(40);

        // 设置滚动面板视口大小(超过该大小的行数据,需要拖动滚动条才能看到)
        table.setPreferredScrollableViewportSize(new Dimension(900, 320));

        // 排序器
        @SuppressWarnings({ "rawtypes" })
        RowSorter sorter = new TableRowSorter(model);
        table.setRowSorter(sorter);
        JScrollPane pane = new JScrollPane(table);

        // 把 表格 放到 滚动面板 中(表头将自动添加到滚动面板顶部)
        JScrollPane scrollPane = new JScrollPane(table);

        // 添加 滚动面板 到 内容面板
        panel.add(scrollPane);
        // JScrollPane pane = new JScrollPane(table);
        // 设置 内容面板 到 窗口
        jf.setContentPane(panel);
        jf.pack();
        jf.setSize(900, 600);
        jf.add(scrollPane, BorderLayout.CENTER);

        // 数据居中显示
        DefaultTableCellRenderer r = new DefaultTableCellRenderer();
        r.setHorizontalAlignment(JLabel.CENTER);
        table.setDefaultRenderer(Object.class, r);

        jf.setLocationRelativeTo(null);
        int t = table.getRowCount();
        if (t <= 0) {
            JOptionPane.showMessageDialog(null, "该系统中还没有录入学生信息!!!");
            jf.setVisible(false);
        } else {
            jf.setVisible(true);
        }
    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    private Vector createColumnNames() {
        Vector columnNames = new Vector();
        // columnNames.add("序号");
        columnNames.add("学号");
        columnNames.add("姓名");
        columnNames.add("性别");
        columnNames.add("年龄");
        columnNames.add("电话号码");
        columnNames.add("家庭住址");
        columnNames.add("身份证号码");

        return columnNames;
    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    private Vector createTableModelData() {

        Vector data = new Vector();
        String t = null;
        try {
            FileReader f1 = new FileReader("student.txt");
            BufferedReader br = new BufferedReader(f1);
            // arry.clear();// 清除原数组列表中的数据
            int i = 0;
            while ((t = br.readLine()) != null) {
                String[] s = t.split("\\s+"); // 通过空格分割字符串数组
                Vector rowData = new Vector();

                // rowData.add("i");
                rowData.add(s[0]);
                rowData.add(s[1]);
                rowData.add(s[2]);
                rowData.add(s[3]);
                rowData.add(s[4]);
                rowData.add(s[5]);
                rowData.add(s[6]);
                data.add(rowData);
                // System.out.print(s[6]);
                i++;
            }
            f1.close();
            br.close();

        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();

        }
        return data;
    }
}

四、源码下载

1.登录说明

1.系统登录:账号:admin 密码:admin;

2.文件存储:student.txt。

2.下载地址

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

五、其他事宜

1.更多系统

Java+Swing系统系列实现

Java+Swing实现超市管理系统-TXT存储数据

Java+Swing实现自助取款机系统-TXT存储数据

Java+Swing实现宠物商店管理系统-TXT存储数据

Java+Swing实现通讯录管理系统-TXT存储信息

Java+Swing实现图书信息管理系统-TXT存储信息

Java+Swing实现斗地主游戏

Java+Swing实现图书管理系统

Java+Swing实现医院管理系统

Java+Swing实现考试管理系统

Java+Swing实现酒店管理系统

Java+Swing实现超市管理系统1

Java+Swing实现超市管理系统2

Java+Swing实现电影购票系统

Java+Swing实现仓库管理系统-1

Java+Swing实现仓库管理系统-2

Java+Swing实现进销存管理系统

Java+Swing实现自助取款机系统

Java+Swing实现通讯录管理系统

Java+Swing实现停车场管理系统

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

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

Java+Swing实现学生宿舍管理系统

Java+Swing实现学生选课管理系统

Java+Swing实现学生成绩管理系统

Java+Swing实现学校教材管理系统

Java+Swing实现学校教务管理系统

Java+Swing实现企业人事管理系统

Java+Swing实现电子相册管理系统

Java+JSP系统系列实现

Java+JSP实现学生图书管理系统

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

Java+JSP实现用户信息管理系统

Java+JSP实现教师信息管理系统

Java+JSP实现学生宿舍管理系统

Java+JSP实现商品信息管理系统

Java+JSP实现宠物信息管理系统

Java+JSP实现学生成绩管理系统

Java+Servlet系统系列实现

Java+Servlet+JSP实现航空订票系统

Java+Servlet+JSP实现新闻发布系统

Java+Servlet+JSP学生宿舍管理系统

Java+Servlet+JSP实现图书管理系统

Java+Servlet+JSP实现停车场管理系统

Java+Servlet+JSP实现房屋租赁管理系统

Java+Servlet+JSP实现学生信息管理系统

Java+Servlet+JSP实现学生选课管理系统

Java+Servlet+JSPl实现学生选课签到系统

Java+Servlet+JSP实现宠物诊所管理系统

Java+Servlet+JSP实现学生成绩管理系统-1

Java+Servlet+JSP实现学生成绩管理系统-2

Java+SSM系统系列实现

Java+SSM+JSP实现网上考试系统

Java+SSM+JSP实现宠物商城系统

Java+SSM+JSP实现超市管理系统

Java+SSM+JSP实现学生成绩管理系统

Java+SSM+JSP实现学生信息管理系统

Java+SSM+JSP实现药品信息管理系统

Java+SSM+JSP实现汽车信息管理系统

Java+SSM+Jspl实现商品信息管理系统

Java+SSM+JSP+Maven实现网上书城系统

Java+SSM+JSP+Maven实现学校教务管理系统

Java+SSH系统系列实现

Java+SSH+JSP实现在线考试系统

Java+SSH+JSP实现医院在线挂号系统

Java+Springboot系统系列实现

Java+Springboot+H-ui+Maven实现营销管理系统

Java+Springboot+Bootstrap+Maven实现网上商城系统

Java+Springboot+Bootstrap+Maven实现景区旅游管理系统

1.更多JavaWeb系统请关注专栏。

https://blog.csdn.net/helongqiang/category_10020130.html

2.更多JavaSwing系统请关注专栏。

https://blog.csdn.net/helongqiang/category_6229101.html

2.运行项目

关注B站:水坚石青

后期有更多干货视频推出!!!

Eclipse如何导入JavaSwing项目超详细教程

3.侵权事宜

如有侵权请联系我删除。

4.支持博主

如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!

标签: java eclipse swing

本文转载自: https://blog.csdn.net/helongqiang/article/details/126913698
版权归原作者 水坚石青 所有, 如有侵权,请联系我们删除。

“Eclipse+Java+Swing实现学生信息管理系统-TXT存储信息”的评论:

还没有评论