【JAVA】简陋的学生信息管理系统

因为之前写了一个学生信息管理系统,但还是处于命令行界面,不美观,于是打算做一个完整的界面出来。

在网上查阅资料后发现C++本身是不支持图形化界面的(可以使用第三方的Qt来做)

权衡之下还是选择了JAVA,自学之路开始!!!

目前只做了登陆界面和学生成绩录入功能(其实主要还是训练自己的界面设计能力,虽然都是一个样子···)

 用户名 Paul     密码 123456

Login.java

  1 package Menu_UI;
  2 
  3 import Data.StuData;
  4 
  5 import javax.swing.*;
  6 import java.awt.*;
  7 import java.awt.event.ActionEvent;
  8 import java.awt.event.ActionListener;
  9 
 10 public class Login implements  ActionListener
 11 {
 12 
 13     private String user_name;    //用户名
 14     private String user_password;//密码
 15 
 16     JTextField jTextField;//用户名文本框
 17     JPasswordField jPasswordField;//密码文本框
 18 
 19     JPanel namePanel;//用户名容器
 20     JPanel passwordPanel;//密码容器
 21     JPanel buttonPanel;//按钮容器
 22     JPanel toastPanel;//消息提示容器
 23     JPanel windowPanel;//总容器
 24 
 25     JLabel Jname;//用户名提示
 26     JLabel Jpassword;//密码提示
 27     JLabel Jtoast;//判断信息
 28 
 29     JButton loginButton;//登陆按钮
 30     JButton cancelButton;//取消按钮
 31 
 32     JFrame frame;//窗口
 33 
 34     public  Login()
 35     {
 36         user_name="Paul";
 37         user_password="123456";
 38 
 39         jTextField=new JTextField(20);
 40         jPasswordField=new JPasswordField(20);
 41 
 42         namePanel=new JPanel();
 43         passwordPanel=new JPanel();
 44         buttonPanel=new JPanel();
 45         toastPanel=new JPanel();
 46         windowPanel=new JPanel(new GridLayout(4,1));
 47 
 48         Jname=new JLabel("用户名");
 49         Jpassword=new JLabel("密    码");
 50         Jtoast=new JLabel("");
 51 
 52         loginButton=new JButton("登陆");
 53         loginButton.addActionListener(this);
 54         cancelButton=new JButton("重置");
 55         cancelButton.addActionListener(this);
 56 
 57 
 58         frame =new JFrame("登陆窗口");
 59 
 60         frame.setSize(500,300);
 61 
 62         frame.setVisible(true);
 63 
 64         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 65 
 66         namePanel.add(Jname);
 67         namePanel.add(jTextField);
 68 
 69         passwordPanel.add(Jpassword);
 70         passwordPanel.add(jPasswordField);
 71 
 72         toastPanel.add(Jtoast);
 73 
 74         buttonPanel.add(loginButton);
 75         buttonPanel.add(cancelButton);
 76 
 77 
 78         windowPanel.add(namePanel);
 79         windowPanel.add(passwordPanel);
 80         windowPanel.add(toastPanel);
 81         windowPanel.add(buttonPanel);
 82         frame.setContentPane(windowPanel);
 83 
 84 
 85     }
 86     public static void main(String args[])
 87     {
 88         new Login();
 89     }
 90 
 91     public void actionPerformed(ActionEvent e) {
 92         String cmd=e.getActionCommand();
 93         if(cmd.equals("登陆"))
 94         {
 95             if(jTextField.getText().equals(user_name)&&jPasswordField.getText().equals(user_password))
 96             {
 97                 //Jtoast.setText(jTextField.getText()+"  用户欢迎使用!");
 98                 JOptionPane.showMessageDialog(null, "登陆成功");
 99                 frame.dispose();//关闭当前窗口
100                 new StuData();
101             }
102             else
103             {
104                 Jtoast.setText("用户名或密码错误!");
105             }
106         }
107         else
108         {
109             jTextField.setText("");
110             jPasswordField.setText("");
111         }
112 
113     }
114 
115 }

StuData.java

  1 package Data;
  2 
  3 
  4 import javax.swing.*;
  5 import javax.swing.event.AncestorEvent;
  6 import javax.swing.event.AncestorListener;
  7 import java.awt.event.ActionListener;
  8 import java.util.HashMap;
  9 import java.util.Map;
 10 import java.awt.*;
 11 import java.awt.event.ActionEvent;
 12 class addView {
 13     JTextField TcourseName;//课程文本框
 14     JTextField Tgrades;//成绩文本框
 15     JButton addButton;//添加按钮
 16     JButton cancelButton;//取消按钮
 17     JPanel coursePanel;//课程容器
 18     JPanel gradePanel;//成绩容器
 19     JPanel buttonPanel;//按钮容器
 20     JPanel windowPanel;//总容器
 21     JLabel Jcourse;
 22     JLabel Jgrades;
 23     JFrame frame;
 24     String course_name;
 25     Double course_grades;
 26     SimpleListener addListener;
 27 
 28     public addView(){
 29         addListener=new SimpleListener();
 30         course_grades=0.0;
 31         course_name="";
 32         TcourseName = new JTextField(13);//课程文本框
 33         Tgrades = new JTextField(13);//成绩文本框
 34         addButton = new JButton("添加");//添加按钮
 35         addButton.addActionListener(addListener);
 36         cancelButton = new JButton("取消");//取消按钮
 37         cancelButton.addActionListener(addListener);
 38         coursePanel = new JPanel();//课程容器
 39         gradePanel = new JPanel();//成绩容器
 40         buttonPanel = new JPanel();//按钮容器
 41         windowPanel = new JPanel();//总容器
 42         Jcourse = new JLabel("课程");
 43         Jgrades = new JLabel("成绩");
 44         frame = new JFrame("成绩录入界面");
 45         frame.setSize(800, 100);
 46         frame.setVisible(true);
 47         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 48 
 49         coursePanel.add(Jcourse);
 50         coursePanel.add(TcourseName);
 51 
 52         gradePanel.add(Jgrades);
 53         gradePanel.add(Tgrades);
 54 
 55         buttonPanel.add(addButton);
 56         buttonPanel.add(cancelButton);
 57 
 58         windowPanel.add(coursePanel);
 59         windowPanel.add(gradePanel);
 60         windowPanel.add(buttonPanel);
 61         frame.setContentPane(windowPanel);
 62 
 63     }
 64 
 65     class  SimpleListener implements ActionListener {
 66         public void actionPerformed(ActionEvent e) {
 67             String cmd = e.getActionCommand();
 68             if(cmd.equals("添加")) {
 69                 try {
 70                     //set_grades(TcourseName.getText().toString(), Double.parseDouble(Tgrades.getText().toString()));
 71                     course_name = TcourseName.getText().toString();
 72                     course_grades = Double.parseDouble(Tgrades.getText().toString());
 73                     JOptionPane.showMessageDialog(null, "学生成绩录入成功");
 74                     frame.dispose();
 75                 } catch (NumberFormatException error) {
 76                     JOptionPane.showMessageDialog(null, "你个大坏蛋,输错了啦");
 77                     TcourseName.setText("");
 78                     Tgrades.setText("");
 79                 }
 80             }
 81             else
 82             {
 83             TcourseName.setText("");
 84             Tgrades.setText("");
 85             }
 86          }
 87     }
 88 }
 89 
 90 
 91 
 92 
 93 public class StuData {
 94     public String name;//学生姓名
 95     public String number;//学生学号
 96     public String sex;//学生
 97     public Map<String, Double> grades_map;
 98     public double average;
 99     public int total_lesson;
100 
101     private void set_grades(String course_name, Double grades) {
102         grades_map.put(course_name, grades);
103         System.out.println("成绩信息添加成功!");
104     }
105 
106     private void print_grades(){
107         for (Map.Entry<String, Double> entry : grades_map.entrySet()) {//遍历map
108             System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
109         }
110     }
111 
112     public StuData(){//构造函数
113         name = "";
114         number = "";
115         sex = "";
116         average = 0.0;
117         total_lesson = 0;
118         grades_map = new HashMap<String, Double>();
119     }
120 
121     public void init(String _name, String _number, String _sex){//初始化学生信息
122         name = _name;
123         number = _number;
124         sex = _sex;
125     }
126 
127     public void setGrades(){//公有函数,弹出成绩录入窗口并采集信息
128 
129         new addView();
130     }
131 
132 
133 
134     public static void main(String args[]){
135         StuData test=new StuData();
136         test.setGrades();
137     }
138 }

 

 

Welcome.java

 1 package Menu_UI;
 2 
 3 
 4 import java.awt.*;
 5 import java.awt.event.*;
 6 import javax.swing.*;
 7 public class Welcome {
 8 
 9 //待完善,这个界面就是登陆成功后的界面,对学生信息进行查询打印修改等操作
10 
11 }

 

 

posted @ 2019-02-18 15:38  巴塞罗那的余晖  阅读(1698)  评论(0编辑  收藏  举报
//雪花飘落效果