【Java】StudentsInfoQuery(简单的学生信息查询系统)
周末作业,写的草草,BUG很多,直接贴代码。
基于文本文档的,不是数据库。
功能极其有限,也没有用WindowBuilder。
教师查询窗口
package wh.one;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;import wh.io.ReadStuFromFile;public class FirstWindow implements ActionListener {JTextField jxt = null;JTextArea jta = null;JFrame f = null;JComboBox<String> se = new JComboBox<String>();public void showMyWindow() {JButton blog = new JButton("select");JButton bclear = new JButton("clear");JLabel jl = new JLabel("Select conditon:");JLabel jl2 = new JLabel("Input:");se.addItem("choose");se.addItem("student number");se.addItem("student name");jxt = new JTextField("No support for fuzzy query",20);jta = new JTextArea(10,20);f = new JFrame("Select");JPanel p = new JPanel();p.add(jl);p.add(se);p.add(jl2);p.add(jxt);p.add(blog);p.add(bclear);p.add(jta);f.add(p,BorderLayout.CENTER);blog.addActionListener(this);bclear.addActionListener(this);jxt.setEditable(false);se.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent e) {String temp = se.getSelectedItem().toString();if(temp.equals("student number")) { //Only numbers can input in the jxtjxt.setEditable(true);jxt.addKeyListener(new KeyAdapter() {public void keyTyped(KeyEvent e) {char keyChar = e.getKeyChar();if(!( (keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9) ||keyChar == (22&0x1f) /*Ctrl+V(ASCLL CODE) used to paste*/ || keyChar == KeyEvent.VK_BACK_SPACE)) {JOptionPane.showMessageDialog(null,"Only NUMBERS can be input in","Warning",JOptionPane.ERROR_MESSAGE);e.consume();jxt.setText("");}}});}else if(temp.equals("student name")) { //Only Chinese can input in the jxtjxt.setEditable(true);jxt.addKeyListener(new KeyAdapter() {public void keyTyped(KeyEvent e) {char keyChar = e.getKeyChar();if( !( ( (keyChar >= '\u4e00' && keyChar <= '\u9fa5') ||(keyChar >= 'a' && keyChar <= 'z') ||(keyChar >= 'A' && keyChar <= 'Z') ||keyChar == KeyEvent.VK_BACK_SPACE ) ) ) {JOptionPane.showMessageDialog(null,"Only CHINESE or ENGLISH can be input in","Warning",JOptionPane.ERROR_MESSAGE);e.consume();jxt.setText("");}}});}else {jxt.setEditable(false);}}});f.setVisible(true);f.setSize(700,400);f.setLocation(200, 200);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("select")) { //select buttonString getstr = jxt.getText().trim();try {jta.setText("");ReadStuFromFile rsf = new ReadStuFromFile();ArrayList<String> stu = rsf.getStuFromFile(getstr);if(stu.isEmpty())JOptionPane.showMessageDialog(null,"Not Valid","Input Error",JOptionPane.WARNING_MESSAGE);else {f.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);FifthWindow fw = new FifthWindow();fw.showMyWindow(stu);}}catch(NumberFormatException ex) {JOptionPane.showMessageDialog(null,"Not Valid","Error",JOptionPane.WARNING_MESSAGE);}}else if(e.getActionCommand().equals("clear")) { //clear buttonjxt.setText("");jta.setText("");}}}
学生查看自身信息的窗口
package wh.one;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;public class FifthWindow {public void showMyWindow(String stu) {JButton quit = new JButton("quit");JTextArea jta = new JTextArea();JPanel p = new JPanel();p.add(jta);p.add(quit);JFrame f = new JFrame("Student InfoWindow");f.add(p,BorderLayout.CENTER);f.setVisible(true);f.setSize(400,300);f.setLocation(250,250);jta.setText(stu);quit.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getActionCommand().equals("quit")) {f.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);ThirdWindow tw = new ThirdWindow();tw.showMyWindow();}}});}public void showMyWindow(ArrayList<String> stu) {// TODO Auto-generated method stubJFrame f = new JFrame("Student InfoWindow");JButton quit = new JButton("quit");JTextArea jta = new JTextArea();JPanel p = new JPanel();p.add(jta);p.add(quit);f.add(p,BorderLayout.CENTER);f.setVisible(true);f.setSize(400,300);f.setLocation(250,250);int i = 0;while(i < stu.size()) {String read = stu.get(i++);jta.append(read +"\n\r");}quit.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getActionCommand().equals("quit")) {f.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);FirstWindow fw = new FirstWindow();fw.showMyWindow();}}});}}
教师登陆窗口
package wh.one;import java.awt.BorderLayout;
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.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;public class SecondWindow { //Teachers login windowJTextField jxt1 = null;JTextArea jta1 = null;JPasswordField jxt2 = null;JTextArea jta2 = null;public void showMyWindow() {JButton blog = new JButton("login");JButton bclear = new JButton("return");JLabel jl1 = new JLabel("Job account: ");JLabel jl2 = new JLabel(" Password: ");jxt1 = new JTextField(15);jxt2 = new JPasswordField(15);JFrame f = new JFrame("Teachers");JPanel p = new JPanel();p.add(jl1);p.add(jxt1);p.add(jl2);p.add(jxt2);p.add(blog);p.add(bclear);f.add(p,BorderLayout.CENTER);f.setVisible(true);f.setSize(300,300);f.setLocation(250,250);blog.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString username = jxt1.getText().trim();String pwd = String.valueOf(jxt2.getPassword());if(username.equals("abc")&&pwd.equals("123")) {f.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);FirstWindow fw = new FirstWindow();fw.showMyWindow();}else {JOptionPane.showMessageDialog(null,"No User or Error Password","Error",JOptionPane.ERROR_MESSAGE);}}});bclear.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubf.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);FourthWindow fw = new FourthWindow();fw.showMyWindow();}});}}
学生登陆窗口
package wh.one;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;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.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;import wh.io.ReadStuFromFile;public class ThirdWindow { //Student login windowJTextField jxt1 = null;JPasswordField jxt2 = null;public void showMyWindow() {JButton blog = new JButton("login");JButton bclear = new JButton("return");JLabel jl1 = new JLabel("Student number:");JLabel jl2 = new JLabel(" Password: ");JTextArea jta = new JTextArea("Default password is 111111");jxt1 = new JTextField(15);jxt2 = new JPasswordField(15);JFrame f = new JFrame("Students");JPanel p = new JPanel();p.add(jl1);p.add(jxt1);p.add(jl2);p.add(jxt2);p.add(jta);p.add(blog);p.add(bclear);f.add(p,BorderLayout.CENTER);f.setVisible(true);f.setSize(225,250);f.setLocation(250,250);blog.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString username = jxt1.getText().trim();String pwd = String.valueOf(jxt2.getPassword());ReadStuFromFile rsf = new ReadStuFromFile();ArrayList<String> stu = rsf.getStuFromFile(username);if( !stu.isEmpty() && pwd.equals("111111") && username.length() == 15) {f.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);FifthWindow fw = new FifthWindow();fw.showMyWindow(stu.get(0));}else {JOptionPane.showMessageDialog(null,"No User Found or Error Password","Error",JOptionPane.ERROR_MESSAGE);}}});bclear.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubf.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);FourthWindow fw = new FourthWindow();fw.showMyWindow();}});}}
角色(教师或学生)选择窗口,不同角色的权限不一样(教师可查看所有学生信息,学生仅可查看自身信息)
package wh.one;import java.awt.BorderLayout;
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;
import javax.swing.WindowConstants;public class FourthWindow {public void showMyWindow() {JButton tr = new JButton("Teacher Role");JButton sr = new JButton("Student Role");JFrame f = new JFrame("Login");JPanel p = new JPanel();p.add(new JLabel("---Welcom to Student Info Query System---\n\r"));p.add(new JLabel("--Choose the Role to Login---"));p.add(tr);p.add(sr);f.add(p,BorderLayout.CENTER);f.setVisible(true);f.setSize(260,260);f.setLocation(250,250);tr.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getActionCommand().equals("Teacher Role")) {f.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);SecondWindow sw = new SecondWindow();sw.showMyWindow();}}});sr.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getActionCommand().equals("Student Role")) {f.setVisible(false);f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);ThirdWindow tw = new ThirdWindow();tw.showMyWindow();}}});}}
读文档(这是基于文本文档TXT的简单系统)
package wh.io;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;public class ReadStuFromFile {ArrayList<String> stulist = new ArrayList<String>();public ArrayList<String> getStuFromFile(String getstr) {try {@SuppressWarnings("resource")BufferedReader br = new BufferedReader(new FileReader(new File("D:/myjava/eclipseJavaPro/Students.txt")));String line = br.readLine();while(line != null) {if(line.contains(getstr))stulist.add(line);line = br.readLine();}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return stulist;}}
以下是txt文档的内容:
//Begin
1 200328000200056 张文
2 200328000500074 王者超
3 200328000900254 高绍凯
4 200328003200873 吕维
5 200328003200874 马秀敏
6 200328003200877 宋迪
7 200328004101435 钟杨杰
8 200328004201442 田超
9 200328004201450 逯非
10 200328005701636 张婷婷
11 200328005701639 戴志军
12 200328005701646 肖华东
13 200328005701648 朱三妹
14 200328005801673 张立生
15 200328005801678 陈志华
16 200328006001717 张欣
17 200328006201753 卜坤
18 200328006201754 荆玉平
19 200328006201759 徐枫
20 200328006201763 李宏伟
21 200328006301773 陈泽富
22 200328006301791 汤庆新
23 200328006301792 唐富贵
24 200328006301793 张海珍
25 200328006801874 李征
26 200328007001967 杜聪
27 200328007001969 高雪迪
28 200328007001973 黄初冬
29 200328007001989 吴斐
30 200328007001991 熊隽
31 200328007001994 张利辉
32 200328007301997 白伟华
33 200328007502079 殷建华
34 200328010202415 黄粤
35 200328010202417 刘英
36 200328010202418 唐飞
37 200328010202419 赵金
38 200328011202714 李骁健
39 200328012002872 季芬
40 200328012002892 吴旭东
41 200328015504495 李麟
42 200328015504498 林颖
43 200328015504502 邵燕
44 200328015504503 唐炜
45 200328015504504 徐刘靖
46 200328015504505 张剑
47 200328016404703 梁强
48 200328016404704 林志炳
49 200328016404706 乔岩
50 200328016404709 杨瑞广
51 200328016504746 陈利燕
52 200328016504749 方元
53 200328016504761 聂云峰
54 200328540105083 侯春林
55 200328540505135 尹继尧
56 200328540105088 陈宏峰
57 200328530105068 陆兆轼
58 200328600105155 殷红梅
59 200328540405119 佟江
60 200328540505129 胡彬
61 200328600105154 王盛校
62 200328540205102 杨泽
63 200328510105032 陈勇
64 200328530105073 左河疆
65 200328540100011 梁建宏
66 200328540505136 仲霄
67 200328600105148 丁剑
68 200328540505134 武敏捷
69 200328540105094 赵书礼
70 200328600105149 王华
71 200328540105092 许建华
72 2003J8540100013 达勇
73 200328540405120 王丹
74 200328600105152 柏华洁
75 200328540705141 刘冠中
76 200328510105038 金华
77 200328540505128 侯贺晟
78 200328540405116 董运洪
79 200328530105069 孙振宇
//end
----------------------------------分-----割-----线----------------------------------
所有代码在MainTest中测试通过
package test;import wh.one.FourthWindow;public class MainTest { //Initial Window is Role-Selection(FourthWindow).public static void main(String[] s) {new FourthWindow().showMyWindow();}}
----------------------------------分-----割-----线----------------------------------
午睡后草草码了一会,晚上去吃羊排,回来写博客。
2015/12/05
【Java】StudentsInfoQuery(简单的学生信息查询系统)相关推荐
- java实现简单的学生信息管理系统
java实现简单的学生信息管理系统(无界面) 学生类实体: package com.edu.imau.wcy;public class Stu {private String stuNum;//学号p ...
- java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构 ...
- java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目 ...
- Mr.张小白(案例:学生信息查询系统的MyBatis的实现)
学生信息查询系统 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...
- javaweb课程设计(简单的学生成绩查询系统)
学生成绩查询系统 基于JDBC,c3p0数据库连接池,使用sqlserver作为数据库管理,使用三层架构的简单的学生成绩查询系统. //代码仓库见文末 登录界面 密码错误登陆拦截 主界面(教师) 设置 ...
- clistctrl控件最后插入在后面_用图表控件做一个简单的员工信息查询系统
前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...
- 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统
前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...
- java计算机毕业设计飞机航班信息查询系统(附源码、数据库)
java计算机毕业设计飞机航班信息查询系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...
- JAVA毕设项目飞机航班信息查询系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
JAVA毕设项目飞机航班信息查询系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + ...
最新文章
- 电源系统中纹波和噪声的处理
- Android之ListView原理学习与优化总结
- docker mysql 防火墙_docker mysql
- velocity模板的语法简要汇总
- 四步创建TCP客户端
- c++11特性move和forward区别
- python常见安装
- 【Elasticsearch】 Elasticsearch Suggester 自动纠错 详解
- c语言加减乘除运算代码_科协推文 || 走进C语言
- 网页服务器移机设置,手头有一台服务器,应该怎么配置才能正常作为网站服务器运行呢?...
- 最新 | 机械工程领域SCI期刊一览(2020JCR)
- DBMS_SQLTUNE + SQL Performance Analyzer 实战小记
- 投票系统程序设计缺陷分析
- 什么是场景化需求分析法?如何有效使用这个客户需求分析最有效的方法?
- ActiveMQ 反序列化漏洞 (CVE-2015-5254)
- js判断文件后缀名方法
- Git patch的使用方法和场景
- #import 指令 (C++)
- linux下socket编程常用头文件
- Perl-Can't locate Time/HiRes.pm 错误
热门文章
- backurl: heytapbrowser://main/iflow?sub_target=only_enter_iflow
- Vim中快速定位到某一行的方法
- hypermesh 根据坐标施加载荷- Field 载荷映射,以温度场载荷为例
- SCANDISK命令详解与使用方法
- pythonmacd指标编写_利用python编写macd、kdj、rsi、ma等指标 -
- Jlink 烧录stm32 提示- ERROR: Verification of RAMCode failed @ address 0x20000000.
- css动画走马灯5秒,css3 transition 和 animation实现走马灯
- 台式机如何通过无线网卡释放热点?
- vue 同局域网访问不到问题
- 职场上这四件事,越早知道越好