学生选课系统----LoginWindow

/**
 * @author 李佩
 *
 * @version v1
 *
 * @time 2016/12/1 15:37
 *
 * @program 创建对应数据表实体的老师类,方便dao与数据库的连接
 *
 */

package com.csms.windows;

// 导入要用到的包
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import com.csms.dao.*;
import javax.swing.*;

// 学生选课系统登录界面
public class LoginWindow {
	JFrame frame = new JFrame();
	// 窗口的大小
	private static final int WINDOWSWIDE = 400;
	private static final int WINDOWSHIGH = 200;
	// 确定radioButton的选择项:1表示管理员,2表示学生,3表示老师
	private static int flag = 0;
	// 定义用户名输入框和密码框的组件变量
	final JTextField userText;
	final JPasswordField pswText;
	// 设置密码标签和用户名标签
	JLabel psdLabel;
	JLabel textLabel;
	// 单选按钮组件变量
	JRadioButton radioButton;
	// 用户登录名变量,通过这两个变量,在学生界面,老师界面来取得登陆的用户名和密码
	private static String loginUserName;
	private static String loginPassword;
	// 创建单选按钮组
	ButtonGroup buttGroup = new ButtonGroup();
	JPanel southPanel = new JPanel();
	// 设置登录界面的logo标签
	Icon icon = new ImageIcon("src//images//icons//loginIcon.png");

	public LoginWindow() {
		// 1.设置label标签,用于登录框的湖南理工学院logo标签
		JLabel label = new JLabel(icon);
		label.setBounds(70, 0, 260, 60);
		frame.add(label);

		// 2.设置文本标签和文本框的位置
		// 用户名标签及用户名登录框,并将它们设置好位置,添加进面板
		PublicWindowSet.addLabel(frame, 16, 65, 70, 90, 30, "用户名:");
		userText = new JTextField();
		PublicWindowSet.addTextField(userText, 130, 70, 200, 30, frame);
		// 密码标签及密码登录框,并将它们设置好位置,添加进面板
		PublicWindowSet.addLabel(frame, 16, 65, 105, 90, 30, "密  码:");
		pswText = new JPasswordField();
		PublicWindowSet.addTextField(pswText, 130, 105, 200, 30, frame);

		// 3.设置单选按钮
		// 创建单选按钮
		this.addRadioButton("管理员", 1, false);
		this.addRadioButton("学生", 2, false);
		this.addRadioButton("老师", 3, false);
		southPanel.setBounds(60, 140, 200, 30);
		frame.add(southPanel);

		// 4.创建登录按钮
		this.addButton("登录", frame);

		// 5.设置窗口相关的属性,windowAttribute函数是封装在PublicWindowSet类中的窗口属性设置函数
		// 设置窗口的标题
		PublicWindowSet.windowAttribute(frame, WINDOWSWIDE, WINDOWSHIGH, null, "湖南理工学院学生选课系统");

	}

	// 设置单选按钮的监听器和添加单选按钮
	private void addRadioButton(String name, int flag, Boolean bool) {
		radioButton = new JRadioButton(name, bool);
		// 设置单选按钮透明
		radioButton.setContentAreaFilled(false);
		// 设置单选按钮字体和字体的相关属性
		radioButton.setFont(new Font("楷体", Font.PLAIN, 12));
		radioButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LoginWindow.setFlag(flag);
			}
		});
		buttGroup.add(radioButton);
		southPanel.add(radioButton);
	}

	// 添加登录确认和取消按钮并同时设置按钮监听器
	private void addButton(String buttonName, JFrame jfr) {
		JButton button = new JButton(buttonName);
		button.setBounds(260, 140, 60, 25);
		button.setFont(new Font("楷体", Font.PLAIN, 12));
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				try {
					// 执行登录
					// 设置用户名和密码,保存起来
					loginUserName = userText.getText();
					loginPassword = pswText.getText();
					LoginWindow.setLoginUserName(loginUserName);
					LoginWindow.setLoginPassword(loginPassword);
					if (LoginWindow.getFlag() == 1) {
						// 1.管理员
						// 判断输入框的内容是否为空,这个之中的代码还可以继续封装
						if (loginUserName.length() == 0 || loginPassword.length() == 0) {
							// promptPopUp方法是封装在PublicWindowSet中的提示框显示函数
							PublicWindowSet.promptPopUp("请输入用户名和密码!", "登录提示", jfr);
						}
						// 判断输入的密码和用户名是否正确
						else if (new AdminitartorDAO().loginConfirm(loginUserName, loginPassword)) {
							PublicWindowSet.promptPopUp("登录成功!!!", "登录提示", jfr);
							new AdmintratorWindow();
							jfr.dispose();
						} else {
							PublicWindowSet.promptPopUp("用户名或密码错误,请重新输入!!!", "登录提示", jfr);
						}
					} else if (LoginWindow.getFlag() == 2) {
						// 2.学生
						// 判断输入框的内容是否为空
						if (loginUserName.length() == 0 || loginPassword.length() == 0) {
							PublicWindowSet.promptPopUp("请输入用户名和密码!", "登录提示", jfr);
						}
						// 验证身份,判断是否正确的用户名和密码
						else if (new StudentDAO().loginConfirm(loginUserName, loginPassword)) {
							PublicWindowSet.promptPopUp("登录成功!!!", "登录提示", jfr);
							StudentWindow sw = new StudentWindow();
							sw.setSize(sw.getWindowwide(), sw.getWindowhigh());
							// 释放登录窗口
							jfr.dispose();
						} else {
							PublicWindowSet.promptPopUp("用户名或密码错误,请重新输入!!!", "登录提示", jfr);
						}
					} else if (LoginWindow.getFlag() == 3) {
						// 3.老师
						// 判断输入框的内容是否为空
						if (loginUserName.length() == 0 || loginPassword.length() == 0) {
							PublicWindowSet.promptPopUp("请输入用户名和密码!", "登录提示", jfr);
						}
						// 验证身份,判断是否正确的用户名和密码
						else if (new TeacherDAO().loginConfirm(loginUserName, loginPassword)) {
							PublicWindowSet.promptPopUp("登录成功!!!", "登录提示", jfr);
							new TeacherWindows();
							jfr.dispose();
						} else {
							PublicWindowSet.promptPopUp("用户名或密码错误,请重新输入!!!", "登录提示", jfr);
						}
					} else {
						PublicWindowSet.promptPopUp("请您选择你的身份:学生,老师,管理员!", "登录提示", jfr);
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		jfr.add(button);
	}

	// 取得flag标识
	private static int getFlag() {
		return flag;
	}

	// 设置flag标识
	private static void setFlag(int flag) {
		LoginWindow.flag = flag;
	}

	// 获取登录用户名
	public static String getLoginUserName() {
		return loginUserName;
	}

	// 设置登录用户名
	public static void setLoginUserName(String loginUserName) {
		LoginWindow.loginUserName = loginUserName;
	}

	// 获取登录用户名
	public static String getLoginPassword() {
		return loginPassword;
	}

	// 设置登录用户名
	public static void setLoginPassword(String loginPassword) {
		LoginWindow.loginPassword = loginPassword;
	}
}

  

时间: 2024-10-25 11:32:57

学生选课系统----LoginWindow的相关文章

学生选课系统----TeacherWindow

/** * @author 李佩 * * @version v1 * * @time 2016/12/6 9:29 * * @program 画出学生选课系统的学生界面 * */ package com.csms.windows; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.even

学生选课系统----StudentWindow

/** * @author 李佩 * * @version v1 * * @time 2016/12/2 22:21 * * @program 画出学生选课系统的学生界面 * */ package com.csms.windows; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; import java.util.List; import com.csms.

3.python小项目:学生选课系统

学生选课系统 编程核心:在对象中封装对象 目录结构: 1.administrator.py import random import os import sys sys.path.append(os.path.dirname(os.path.dirname(__file__))) import time import pickle from lib import models from config import settings from lib.models import * # 全部导入

学生选课系统----TeacherDAO

老师信息操作: /** * @author 李佩 * * @version v1 * * @time 2016/12/2 14:54 * * @program 老师信息与数据库之间的操作 * */ package com.csms.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import ja

JAVA | 学生选课系统

这里使用JAVA语言编写的简易的学生选课系统,展现的都是这个系统核心代码. 其中有不足欢迎批评和指正! 链接数据库的代码 package connection;//连接数据库student import java.sql.Connection;import java.sql.DriverManager;//import java.sql.Statement;import java.sql.SQLException; public class xu{ private static Connecti

学生选课系统数据存储用shelve

工程目录: #bin/run.py from core.main import Run Run.login() #core/ADM.py #-*-coding:utf-8 -*- __author__ = 'MrChu' import hashlib import shelve #shelve={'Student':[{'name':'xxx','passWord':'xxx','course':[]},{...},{...}], # 'Administrators':[{'name':'xxx

面向对象的应用:学生选课系统

一.要求: 选课系统 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 使用pickle保存在文件 学生: 学生:用户名.密码.性别.年龄.选课列表[].上课记录{课程1:[di,a,]} 1.列举所有课程 2.选择课程 3.学生上课, 4.ret = 课程.work() 获取课程的返回; 资产+=课时费 二.代码思路 2.1 管理员系统 a.定义了Teacher类,name,age,gender,property,其中property为私有成员,用对象

学生选课系统----SelectCourseDAO

/** * @author 李佩 * * @version v1 * * @time 2016/12/5 22:03 * * @program 已选课程信息与数据库进行操作的类 * */ package com.csms.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.ut

学生选课系统----实体类

学生: package com.csms.entity; /** * @author 李佩 * * @version v1 * * @time 2016/12/1 10:10 * * @program 创建对应数据表实体的学生类,方便dao与数据库的连接 * */ public class Student { // 学生登录系统的登录名 private String loginName; // 登录密码 private String loginPSD; // 学生学号 private Strin