java swing学生信息管理系统

系统环境:

1、mysql5.6+

2、jdk1.8

3、idea、eclipse、myeclipse

系统功能:

1、登录页

系统用户分为管理员、教师、学生

package mis.frame;

import java.awt.CardLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import mis.tool.SqlConnection;
import mis.tool.SqlOperation;
import people.Student;
import people.Teacher;

public class Login implements Layout{
	JPanel pane=new JPanel();
	CardLayout card=new CardLayout();
	//用户
	private static String[] type= {"系统管理员","教师","学生"};
	private static String item_type="系统管理员";
	JPanel panel=new JPanel(new GridLayout(6,1));
	
	public JPanel loginPane() {
		
		JPanel hello_pane=new JPanel();
		JLabel hello_label=new JLabel("学生信息管理系统");
		hello_label.setFont(new Font(null,Font.BOLD,28));
		hello_pane.add(hello_label);
		
		JPanel type_pane=new JPanel();
		JLabel type_label=new JLabel("用户类型:");
		JComboBox<String> combo=new JComboBox<>(type);
		combo.addItemListener(new ItemListener() {
			@Override
			public void itemStateChanged(ItemEvent e) {
				if(e.getStateChange()==ItemEvent.SELECTED) {
					item_type=(String)combo.getSelectedItem();
				}
			}
			
		});	
		type_pane.add(type_label);
		type_pane.add(combo);
		JPanel name_pane=new JPanel();
		JLabel name_label=new JLabel("账 号:");
		name_label.setHorizontalAlignment(SwingConstants.LEFT);
		JTextField name_text=new JTextField(20);
		name_pane.add(name_label);
		name_pane.add(name_text);
		
		JPanel password_pane=new JPanel();
		JLabel password_label=new JLabel("密    码:");
		password_label.setHorizontalAlignment(SwingConstants.LEFT);
		JPasswordField password_text=new JPasswordField(20);
		password_pane.add(password_label);
		password_pane.add(password_text);
		
		JPanel button_pane=new JPanel();
		JButton login_button=new JButton("登录");
		JButton cancel_button=new JButton("取消");
		button_pane.add(login_button);
		button_pane.add(cancel_button);
	
		panel.add(hello_pane);
		panel.add(type_pane);
		panel.add(name_pane);
		panel.add(password_pane);
		panel.add(button_pane);
		
		login_button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				String account=name_text.getText();
				String password=new String(password_text.getPassword());
					if(item_type.equals("系统管理员")) {
						String manager_sql="select*from tb_manager where account="+"'"+account+"'";
						loginCheckManager(manager_sql,account,password);
					}else if(item_type.equals("教师")) {
						String manager_sql="select*from tb_teacher where account="+"'"+account+"'";
						loginCheckTeacher(manager_sql,account,password);
					}else if(item_type.equals("学生")) {
						String manager_sql="select*from tb_student where account="+"'"+account+"'";
						loginCheckStudent(manager_sql,account,password);
					}
					name_text.setText("");
					password_text.setText("");
			}
		});
		cancel_button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				int order=JOptionPane.showConfirmDialog(pane,"是否退出!","提示",JOptionPane.YES_OPTION);
				if(order==JOptionPane.YES_OPTION) {
					System.exit(0);	
				}
			}
		});
		return panel;
	}
	//检测登录
	public void loginCheckManager(String sql,String name,String password) {
			if(!name.equals("")&&!password.equals("")) {
				try {
					Statement state=SqlConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
					ResultSet result=state.executeQuery(sql);
					if(result.next()) {
						if(result.getString("password").equals(password)) {
							card.show(pane,"navigation");
						}else {
							JOptionPane.showMessageDialog(null,"密码不正确,请重新输入");
						}
					}else{
						JOptionPane.showMessageDialog(null,"请检查用户名是否正确");
					}
				} catch (SQLException e1) {
					e1.printStackTrace();
				}
			}else {
				JOptionPane.showMessageDialog(null,"用户名或密码为空","错误",JOptionPane.ERROR_MESSAGE,null);
			}
	}
	public void loginCheckTeacher(String sql,String name,String password) {
		if(!name.equals("")&&!password.equals("")) {
			try {
				Statement state=SqlConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
				ResultSet result=state.executeQuery(sql);
				if(result.next()) {
					if(result.getString("password").equals(password)) {
						TeacherPersonMessage teacherMessage=new TeacherPersonMessage();
						teacherMessage.setPane(pane);
						teacherMessage.setcard(card);
						Teacher teacher=SqlOperation.queryTeacher(sql).get(0);
						pane.add(teacherMessage.checkResultPanel(teacher),"teacherMessage");
						card.show(pane,"teacherNavigation");
					}else {
						JOptionPane.showMessageDialog(null,"密码不正确,请重新输入");
					}
				}else{
					JOptionPane.showMessageDialog(null,"请检查用户名是否正确");
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
		}else {
			JOptionPane.showMessageDialog(null,"用户名或密码为空","错误",JOptionPane.ERROR_MESSAGE,null);
		}
}
	public void loginCheckStudent(String sql,String name,String password) {
		if(!name.equals("")&&!password.equals("")) {
			try {
				Statement state=SqlConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
				ResultSet result=state.executeQuery(sql);
				if(result.next()) {
					if(result.getString("password").equals(password)) {
						StudentPersonMessage studentMessage=new StudentPersonMessage();
						studentMessage.setPane(pane);
						studentMessage.setcard(card);
						Student student=SqlOperation.queryStudent(sql).get(0);
						pane.add(studentMessage.checkResultPanel(student),"studentMessage");
						card.show(pane,"studentNavigation");
						
					}else {
						JOptionPane.showMessageDialog(null,"密码不正确,请重新输入");
					}
				}else{
					JOptionPane.showMessageDialog(null,"请检查用户名是否正确");
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
		}else {
			JOptionPane.showMessageDialog(null,"用户名或密码为空","错误",JOptionPane.ERROR_MESSAGE,null);
		}
}
	@Override
	public void setPane(JPanel pane) {
		this.pane=pane;
	}
	@Override
	public void setcard(CardLayout card) {
		this.card=card;
	}
}

 2、管理员端

 部分代码

package mis.frame;

import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Navigation implements Layout{
	CardLayout card=new CardLayout();
	JPanel pane=new JPanel(card);
	JPanel panel=new JPanel();
	public JPanel navigationPane() {
		JMenuBar menuBar=new JMenuBar();
		
		JMenu system=new JMenu("系统管理");
		JMenu teacher=new JMenu("教师管理");
		JMenu student=new JMenu("学生管理");
		JMenu college=new JMenu("院系管理");
		JMenu course=new JMenu("课程管理");
		
		JMenuItem manager_message=new JMenuItem("管理员信息");
		JMenuItem manager_add=new JMenuItem("添加管理员");
		system.add(manager_message);
		system.add(manager_add);
		
		manager_message.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				card.show(pane,"managerMessage");
			}
			
		});
		manager_add.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				card.show(pane,"managerAdd");
			}
			
		});
		
		JMenuItem teacher_message=new JMenuItem("教师信息");
		JMenuItem teacher_browse=new JMenuItem("教师录入");
		teacher.add(teacher_message);
		teacher.add(teacher_browse);
		
		teacher_message.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				card.show(pane,"teacherMessage");
			}
			
		});
		
		teacher_browse.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				card.show(pane,"teacherAdd");
			}
		});
		
		
		JMenuItem student_message=new JMenuItem("学生录入");
		JMenuItem student_browse=new JMenuItem("学生信息");
		JMenuItem student_score=new JMenuItem("学生成绩");
		student.add(student_message);
		student.add(student_browse);
		student.add(student_score);
		
		student_message.addActionListener(e->{
			card.show(pane,"studentAdd");
		});
		student_browse.addActionListener(e->{
			card.show(pane,"studentMessage");
		});
		student_score.addActionListener(e->{
			card.show(pane,"scoreMessage");
		});
		
		JMenuItem college_message=new JMenuItem("院系信息");
		JMenuItem college_major=new JMenuItem("专业管理");
		JMenuItem college_browse=new JMenuItem("班级信息");
		college.add(college_message);
		college.add(college_major);
		college.add(college_browse);
		
		JMenuItem course_message=new JMenuItem("课程信息");
		JMenuItem course_add=new JMenuItem("开设课程");
		
		course.add(course_message);
		course.add(course_add);
		
		course_message.addActionListener(e->{
			card.show(pane,"courseMessage");
		});
		course_add.addActionListener(e->{
			card.show(pane,"courseAdd");
		});
		
		menuBar.add(system);
		menuBar.add(teacher);
		menuBar.add(student);
		menuBar.add(college);
		menuBar.add(course);
		
		panel.add(menuBar);
		return panel;
	}
	@Override
	public void setPane(JPanel pane) {
		this.pane=pane;
	}
	@Override
	public void setcard(CardLayout card) {
		this.card=card;
	}
}

3、教师端

 

 部分代码

package mis.frame;

import java.awt.CardLayout;

import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class TeacherPersonNavigation implements Layout{
	CardLayout card=new CardLayout();
	JPanel pane=new JPanel(card);
	JPanel panel=new JPanel();
	public JPanel navigationPane() {
		JMenuBar menuBar=new JMenuBar();
		
		JMenuItem teacher_message=new JMenuItem("个人信息");
		JMenuItem teacher_course=new JMenuItem("课程查看");
		JMenuItem teacher_class=new JMenuItem("班级信息");
		
		
		teacher_message.addActionListener(e->{
			card.show(pane,"teacherMessage");
		});
		teacher_course.addActionListener(e->{
			card.show(pane,"teacherMessage");
		});
		teacher_class.addActionListener(e->{
			card.show(pane,"scoreMessage");
		});
		
		menuBar.add(teacher_message);
		menuBar.add(teacher_course);
		menuBar.add(teacher_class);
		
		panel.add(menuBar);
		return panel;
	}
	@Override
	public void setPane(JPanel pane) {
		this.pane=pane;
	}
	@Override
	public void setcard(CardLayout card) {
		this.card=card;
	}
}

 4、学生端

 部分代码

package mis.frame;

import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class StudentPersonNavigation implements Layout {
	CardLayout card=new CardLayout();
	JPanel pane=new JPanel(card);
	JPanel panel=new JPanel();
	
	public JPanel navigationPane() {
		JMenuBar menuBar=new JMenuBar();
		
		JMenuItem student_message=new JMenuItem("个人信息");
		JMenuItem student_course=new JMenuItem("课程查看");
		JMenuItem student_score=new JMenuItem("成绩查看");
		
		
		student_message.addActionListener(e->{
			card.show(pane,"studentMessage");
		});
		student_course.addActionListener(e->{
			card.show(pane,"studentMessage");
		});
		student_score.addActionListener(e->{
			card.show(pane,"scoreMessage");
		});
		
		
		menuBar.add(student_message);
		menuBar.add(student_course);
		menuBar.add(student_score);
		
		panel.add(menuBar);
		return panel;
	}
	@Override
	public void setPane(JPanel pane) {
		this.pane=pane;
	}
	@Override
	public void setcard(CardLayout card) {
		this.card=card;
	}
	

}

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值