因為之前寫了一個學生信息管理系統,但還是處於命令行界面,不美觀,於是打算做一個完整的界面出來。
在網上查閱資料后發現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 }




