Java GUI 实战练习 学生成绩管理系统

学习java有一年多了,一直在做web方面的练习,在一个项目中发现需要用到GUI的相关知识,结果没法做出来,网上这方面的文章又不是很多,所有只好自己硬着头皮从头再学一遍了,不过学习后发现,其实GUI是非常有趣的,他并不像WEB程序一样依赖互联网,而且还有许多布局和android相差不是很大,这才发现自己竟又爱上GUI的开发了,不多说了,直接上代码吧,相信有过android或相关界面开发的都明白这其中的道理

先看看效果吧

123

 

 

1.登录主界面

package edu.gzu.stuManager;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Toolkit;

import javax.swing.JTextField;

import edu.gzu.stuManager.Dao.UserLoginValid;
import edu.gzu.stuManager.Domain.StudentInfo;
import edu.gzu.stuManager.View.StudentMainView;

import java.awt.Choice;
import java.awt.Font;
import java.awt.Button;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class MainUI {

	private JFrame frame;
	private JTextField textField;
	private JTextField textField_1;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MainUI window = new MainUI();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public MainUI() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setTitle("\u6210\u7EE9\u7BA1\u7406\u7CFB\u7EDF\uFF08\u767B\u5F55\uFF09");
		frame.setIconImage(Toolkit.getDefaultToolkit().getImage(MainUI.class.getResource("/image/func_list7_privmana.png")));
		frame.setBounds(400, 250, 450, 300);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JLabel lblNewLabel = new JLabel("\u5B66\u751F\u6210\u7EE9\u7BA1\u7406\u7CFB\u7EDF\u7528\u6237\u767B\u5F55\uFF01");
		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 16));
		lblNewLabel.setBounds(111, 17, 287, 15);
		frame.getContentPane().add(lblNewLabel);
		
		JLabel lblNewLabel_1 = new JLabel("\u7528\u6237\u540D\uFF1A");
		lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 14));
		lblNewLabel_1.setBounds(87, 67, 67, 15);
		frame.getContentPane().add(lblNewLabel_1);
		
		textField = new JTextField();
		textField.setBounds(154, 64, 141, 21);
		frame.getContentPane().add(textField);
		textField.setColumns(10);
		
		JLabel label = new JLabel("\u5BC6  \u7801\uFF1A");
		label.setFont(new Font("宋体", Font.PLAIN, 14));
		label.setBounds(87, 108, 67, 15);
		frame.getContentPane().add(label);
		
		textField_1 = new JTextField();
		textField_1.setColumns(10);
		textField_1.setBounds(154, 103, 141, 21);
		frame.getContentPane().add(textField_1);
		
		JLabel lblNewLabel_2 = new JLabel("\u6211\u7684\u8EAB\u4EFD\u662F\uFF1A");
		lblNewLabel_2.setFont(new Font("宋体", Font.PLAIN, 14));
		lblNewLabel_2.setBounds(105, 150, 97, 15);
		frame.getContentPane().add(lblNewLabel_2);
		
		final Choice choice = new Choice();
		choice.setBounds(210, 147, 74, 21);
		choice.add("学生");
		choice.add("教师");
		choice.add("系统管理员");
		frame.getContentPane().add(choice);
		
		Button button = new Button("\u767B\u5F55");
		button.setBounds(87, 194, 76, 23);
		button.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				String user=textField.getText();
				String password=textField_1.getText();
				String shenfen=choice.getSelectedItem();
				if(user.equals("")||user==null){
					JOptionPane.showMessageDialog(frame, shenfen+":您好,帐号不能为空!");
					return;
				}else if(password.equals("")||password==null){
					JOptionPane.showMessageDialog(frame, shenfen+":您好,密码不能为空!");
					return;
				}else{
					StudentInfo stu=new StudentInfo(Integer.parseInt(user),
							Integer.parseInt(password),shenfen);
					UserLoginValid dao=new UserLoginValid();
					String result=dao.isValid(stu);
					
					if("登录成功!".equals(result)){
						JOptionPane.showMessageDialog(frame,result);
						StudentMainView index=new StudentMainView(stu);
						JFrame frame2=index.getFrame();
						frame2.setVisible(true);
						frame.dispose();
					}else{
						JOptionPane.showMessageDialog(frame,result);
					}
					
				}
			}
		});
		frame.getContentPane().add(button);
		
		Button button_1 = new Button("\u53D6\u6D88");
		button_1.setBounds(219, 194, 76, 23);
		frame.getContentPane().add(button_1);
		
		
	}

}


2.登录验证逻辑

package edu.gzu.stuManager.Dao;

import edu.gzu.stuManager.Domain.StudentInfo;

public class UserLoginValid {

	public String isValid(StudentInfo stu){
		int idnum=stu.getIdnum();
		int password=stu.getPassword();
		String idntify=stu.getIdentify();
		String result=null;
		
		if("学生".equals(idntify)){
			if(idnum==1207010209&&password==123){
				stu.setName("刘明胜 同学");
				result="登录成功!";
			}else{
				result="学生帐号中不存在此用户,请确认身份后再次登录!";
			}
		}else if("教师".equals(idntify)){
			if(idnum==1174386356&&password==123){
				stu.setName("刘明胜 老师");
				result="登录成功!";
			}else{
				result="教师帐号中不存在此用户,请确认身份后再次登录!";
			}
		}else if("系统管理员".equals(idntify)){
			if(idnum==999999&&password==123){
				stu.setName("系统管理员");
				result="登录成功!";
			}else{
				result="系统管理员帐号中不存在此用户,请确认身份后再次登录!";
			}
		}
		
		
		return result;
	}
}


3.用户对象(这是一个简单bean)

package edu.gzu.stuManager.Domain;

public class StudentInfo {
	private int idnum;
	private String name;
	private int password;
	private String identify;
	
	public StudentInfo(int idnum,int password, String identify) {
		super();
		this.idnum = idnum;
		this.password = password;
		this.identify = identify;
	}
	public int getIdnum() {
		return idnum;
	}
	public void setIdnum(int idnum) {
		this.idnum = idnum;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getPassword() {
		return password;
	}
	public void setPassword(int password) {
		this.password = password;
	}
	public String getIdentify() {
		return identify;
	}
	public void setIdentify(String identify) {
		this.identify = identify;
	}
	
	
}


4.登录成功后的主界面

package edu.gzu.stuManager.View;

import java.awt.Button;
import java.awt.Canvas;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import edu.gzu.stuManager.Domain.StudentInfo;

public class StudentMainView{
	private JFrame frame;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
	private JTextField textField_3;
	
	private StudentInfo info;

	/**
	 * Create the frame.
	 * @wbp.parser.entryPoint
	 */
	public StudentMainView(StudentInfo info) {
		this.info=info;
	}
	
	public JFrame getFrame(){
		initialize();
		return frame;
	}
	
	/**
	 * Initialize the contents of the frame.
	 * @wbp.parser.entryPoint
	 */
	public void initialize() {
		frame = new JFrame();
		frame.setTitle("\u6210\u7EE9\u7BA1\u7406\u7CFB\u7EDF\uFF08\u5B66\u751F\u7248\uFF09");
		frame.setIconImage(Toolkit.getDefaultToolkit().getImage(StudentMainView.class.getResource("/image/func_list7_privmana.png")));
		frame.setBounds(300,150, 550, 300);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JLabel lblNewLabel = new JLabel("欢迎【"+info.getName()+"】登录学生成绩管理系统!");
		lblNewLabel.setBounds(54, 10, 322, 15);
		frame.getContentPane().add(lblNewLabel);
		
		JPanel panel = new JPanel();
		panel.setBounds(29, 52, 250, 180);
		frame.getContentPane().add(panel);
		panel.setLayout(null);
		
		JLabel lblNewLabel_1 = new JLabel("\u6210\u7EE9\u6570\u636E");
		lblNewLabel_1.setBounds(94, 10, 65, 15);
		panel.add(lblNewLabel_1);
		
		JLabel lblNewLabel_2 = new JLabel("\u5B66\u53F7\uFF1A");
		lblNewLabel_2.setBounds(22, 37, 40, 15);
		panel.add(lblNewLabel_2);
		
		textField = new JTextField();
		textField.setBounds(72, 35, 154, 21);
		textField.setText(info.getIdnum()+"");
		panel.add(textField);
		textField.setColumns(10);
		
		JLabel lblNewLabel_3 = new JLabel("\u59D3\u540D\uFF1A");
		lblNewLabel_3.setBounds(22, 67, 44, 15);
		panel.add(lblNewLabel_3);
		
		textField_1 = new JTextField();
		textField_1.setBounds(72, 66, 154, 21);
		textField_1.setText(info.getName());
		panel.add(textField_1);
		textField_1.setColumns(10);
		
		Canvas canvas = new Canvas();
		canvas.setBackground(Color.BLUE);
		canvas.setBounds(22, 100, 205, 1);
		panel.add(canvas);
		
		JLabel lblNewLabel_4 = new JLabel("\u8BFE\u7A0B\u540D");
		lblNewLabel_4.setBounds(22, 116, 47, 15);
		panel.add(lblNewLabel_4);
		
		JLabel lblNewLabel_5 = new JLabel("\u6210\u7EE9");
		lblNewLabel_5.setBounds(160, 116, 43, 15);
		panel.add(lblNewLabel_5);
		
		textField_2 = new JTextField();
		textField_2.setBounds(22, 140, 123, 21);
		panel.add(textField_2);
		textField_2.setColumns(10);
		
		textField_3 = new JTextField();
		textField_3.setBounds(159, 140, 66, 21);
		panel.add(textField_3);
		textField_3.setColumns(10);
		
		JPanel panel_1 = new JPanel();
		panel_1.setBounds(317, 52, 110, 180);
		frame.getContentPane().add(panel_1);
		panel_1.setLayout(null);
		
		JLabel lblNewLabel_6 = new JLabel("\u64CD\u4F5C\u83DC\u5355");
		lblNewLabel_6.setBounds(15, 10, 54, 15);
		panel_1.add(lblNewLabel_6);
		
		Button button = new Button("\u7B2C\u4E00\u95E8\u8BFE\u7A0B");
		button.setBounds(10, 31, 76, 23);
		panel_1.add(button);
		
		Button button_1 = new Button("\u4E0B\u4E00\u95E8\u8BFE\u7A0B");
		button_1.setBounds(10, 61, 76, 23);
		panel_1.add(button_1);
		
		Button button_2 = new Button("\u4E0A\u4E00\u95E8\u8BFE\u7A0B");
		button_2.setActionCommand("\u4E0A\u4E00\u95E8\u8BFE\u7A0B");
		button_2.setBounds(10, 90, 76, 23);
		panel_1.add(button_2);
		
		Button button_3 = new Button("\u6700\u540E\u4E00\u95E8\u8BFE");
		button_3.setBounds(10, 117, 76, 23);
		panel_1.add(button_3);
		
		Choice choice = new Choice();
		choice.setBounds(10, 149, 76, 21);
		choice.add("选择课程");
		choice.add("高等数学");
		choice.add("大学英语");
		choice.add("马列主义");
		choice.add("毛泽东思想");
		choice.add("计算机图形学");
		choice.addItemListener(new ItemListener() {
			
			@Override
			public void itemStateChanged(ItemEvent e) {
				Object[] objs=e.getItemSelectable().getSelectedObjects();
				for(Object ob:objs){
//					JOptionPane.showMessageDialog(frame, ob.toString());
					if("高等数学".equals(ob.toString())){
						textField_2.setText("高等数学");
						textField_3.setText("98");
					}else if("大学英语".equals(ob.toString())){
						textField_2.setText("大学英语");
						textField_3.setText("87");
					}else if("马列主义".equals(ob.toString())){
						textField_2.setText("马列主义");
						textField_3.setText("88");
					}else if("毛泽东思想".equals(ob.toString())){
						textField_2.setText("毛泽东思想");
						textField_3.setText("73");
					}else if("计算机图形学".equals(ob.toString())){
						textField_2.setText("计算机图形学");
						textField_3.setText("97");
					}
				}
				
				
			}
		});
		
		panel_1.add(choice);
	}

}

这样就能轻松实现登录验证了,本打算从数据库读取数据的,由于时间关系,这里就简单的直接验证了,后续有时间的话再做其他的部分
  • 17
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值