操作系统:Win10
开发工具 :Eclipse2021
JDK版本:jdk1.8
存储方式:Txt文件存储
Java+Swing+Txt


管理员可以登录系统。
教师可以查看单个学生信息或全部学生信息。
教师可以新增学生信息。
教师可以修改学生信息。
教师可以删除学生信息。
学生可以查看单个学生信息或全部学生信息。






- 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);
- }
- }
- }
- 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
-
- }
- }
- 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
arry = new ArrayList(); - // 添加监听
- // 点击录入按钮 学号","姓名","性别","年龄","电话号码","家庭住址","身份证号码"
- 录入.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();
- }
- }
- 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
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();
- }
- }
- 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.系统登录:账号:admin 密码:admin;
2.文件存储:student.txt。
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
关注B站:水坚石青
后期有更多干货视频推出!!!
如有侵权请联系我删除。
如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!