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

java 复制代码
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

java 复制代码
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

java 复制代码
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

java 复制代码
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

java 复制代码
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.支持博主

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

相关推荐
七星静香12 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员13 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU14 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie617 分钟前
在IDEA中使用Git
java·git
Elaine20239132 分钟前
06 网络编程基础
java·网络
G丶AEOM34 分钟前
分布式——BASE理论
java·分布式·八股
落落鱼201334 分钟前
tp接口 入口文件 500 错误原因
java·开发语言
想要打 Acm 的小周同学呀35 分钟前
LRU缓存算法
java·算法·缓存
镰刀出海38 分钟前
Recyclerview缓存原理
java·开发语言·缓存·recyclerview·android面试
阿伟*rui3 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel