系统环境:
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;
}
}