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;
	}
	

}

 

  • 4
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是一个简单的Java Swing学生信息管理系统的示例代码,包括添加、删除、修改和查询学生信息的功能: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; public class StudentInfoManagementSystem extends JFrame implements ActionListener { private JPanel panel1; private JPanel panel2; private JPanel panel3; private JLabel label1; private JLabel label2; private JLabel label3; private JLabel label4; private JTextField textField1; private JTextField textField2; private JTextField textField3; private JTextField textField4; private JButton addButton; private JButton deleteButton; private JButton modifyButton; private JButton queryButton; private JTable table; private DefaultTableModel model; private JScrollPane scrollPane; public StudentInfoManagementSystem() { super("学生信息管理系统"); this.setSize(500, 500); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(new BorderLayout()); panel1 = new JPanel(); panel2 = new JPanel(); panel3 = new JPanel(); label1 = new JLabel("学号:"); label2 = new JLabel("姓名:"); label3 = new JLabel("性别:"); label4 = new JLabel("年龄:"); textField1 = new JTextField(10); textField2 = new JTextField(10); textField3 = new JTextField(10); textField4 = new JTextField(10); addButton = new JButton("添加"); deleteButton = new JButton("删除"); modifyButton = new JButton("修改"); queryButton = new JButton("查询"); addButton.addActionListener(this); deleteButton.addActionListener(this); modifyButton.addActionListener(this); queryButton.addActionListener(this); panel1.setLayout(new GridLayout(4, 2)); panel1.add(label1); panel1.add(textField1); panel1.add(label2); panel1.add(textField2); panel1.add(label3); panel1.add(textField3); panel1.add(label4); panel1.add(textField4); panel2.add(addButton); panel2.add(deleteButton); panel2.add(modifyButton); panel2.add(queryButton); model = new DefaultTableModel(); model.addColumn("学号"); model.addColumn("姓名"); model.addColumn("性别"); model.addColumn("年龄"); table = new JTable(model); scrollPane = new JScrollPane(table); scrollPane.setPreferredSize(new Dimension(450, 300)); panel3.add(scrollPane); this.add(panel1, BorderLayout.NORTH); this.add(panel2, BorderLayout.CENTER); this.add(panel3, BorderLayout.SOUTH); this.setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == addButton) { String[] data = new String[4]; data[0] = textField1.getText(); data[1] = textField2.getText(); data[2] = textField3.getText(); data[3] = textField4.getText(); model.addRow(data); } else if (e.getSource() == deleteButton) { int row = table.getSelectedRow(); if (row != -1) { model.removeRow(row); } } else if (e.getSource() == modifyButton) { int row = table.getSelectedRow(); if (row != -1) { model.setValueAt(textField1.getText(), row, 0); model.setValueAt(textField2.getText(), row, 1); model.setValueAt(textField3.getText(), row, 2); model.setValueAt(textField4.getText(), row, 3); } } else if (e.getSource() == queryButton) { String id = textField1.getText(); for (int i = 0; i < model.getRowCount(); i++) { if (model.getValueAt(i, 0).equals(id)) { table.setRowSelectionInterval(i, i); return; } } JOptionPane.showMessageDialog(null, "没有找到该学生!"); } } public static void main(String[] args) { new StudentInfoManagementSystem(); } } ``` 这个程序使用了JPanel、JLabel、JTextField、JButton、JTable和JScrollPane等Swing组件。用户可以在文本框中输入学生信息,然后点击相应的按钮来执行添加、删除、修改或查询操作。学生信息以表格的形式展示在程序的下方。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值