周末作业,写的草草,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(简单的学生信息查询系统)相关推荐

  1. java实现简单的学生信息管理系统

    java实现简单的学生信息管理系统(无界面) 学生类实体: package com.edu.imau.wcy;public class Stu {private String stuNum;//学号p ...

  2. java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构 ...

  3. java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目 ...

  4. Mr.张小白(案例:学生信息查询系统的MyBatis的实现)

    学生信息查询系统 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...

  5. javaweb课程设计(简单的学生成绩查询系统)

    学生成绩查询系统 基于JDBC,c3p0数据库连接池,使用sqlserver作为数据库管理,使用三层架构的简单的学生成绩查询系统. //代码仓库见文末 登录界面 密码错误登陆拦截 主界面(教师) 设置 ...

  6. clistctrl控件最后插入在后面_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

  7. 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

  8. java计算机毕业设计飞机航班信息查询系统(附源码、数据库)

    java计算机毕业设计飞机航班信息查询系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...

  9. JAVA毕设项目飞机航班信息查询系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)

    JAVA毕设项目飞机航班信息查询系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + ...

最新文章

  1. 电源系统中纹波和噪声的处理
  2. Android之ListView原理学习与优化总结
  3. docker mysql 防火墙_docker mysql
  4. velocity模板的语法简要汇总
  5. 四步创建TCP客户端
  6. c++11特性move和forward区别
  7. python常见安装
  8. 【Elasticsearch】 Elasticsearch Suggester 自动纠错 详解
  9. c语言加减乘除运算代码_科协推文 || 走进C语言
  10. 网页服务器移机设置,手头有一台服务器,应该怎么配置才能正常作为网站服务器运行呢?...
  11. 最新 | 机械工程领域SCI期刊一览(2020JCR)
  12. DBMS_SQLTUNE + SQL Performance Analyzer 实战小记
  13. 投票系统程序设计缺陷分析
  14. 什么是场景化需求分析法?如何有效使用这个客户需求分析最有效的方法?
  15. ActiveMQ 反序列化漏洞 (CVE-2015-5254)
  16. js判断文件后缀名方法
  17. Git patch的使用方法和场景
  18. #import 指令 (C++)
  19. linux下socket编程常用头文件
  20. Perl-Can't locate Time/HiRes.pm 错误

热门文章

  1. backurl: heytapbrowser://main/iflow?sub_target=only_enter_iflow
  2. Vim中快速定位到某一行的方法
  3. hypermesh 根据坐标施加载荷- Field 载荷映射,以温度场载荷为例
  4. SCANDISK命令详解与使用方法
  5. pythonmacd指标编写_利用python编写macd、kdj、rsi、ma等指标 -
  6. Jlink 烧录stm32 提示- ERROR: Verification of RAMCode failed @ address 0x20000000.
  7. css动画走马灯5秒,css3 transition 和 animation实现走马灯
  8. 台式机如何通过无线网卡释放热点?
  9. vue 同局域网访问不到问题
  10. 职场上这四件事,越早知道越好