基于javaSwing的学生信息管理系统设计实现(文本、数据库或集合存储数据)

Swing图书管理系统(文本、数据库或集合存储数据)实现方式

前言
在设计和实现学生信息管理系统时,采用Java Swing技术构建用户界面是适应现代化管理需求的有力手段。Swing作为Java标准库的一部分,提供了丰富的GUI组件和布局管理器,使得开发者能够创建出灵活、可定制且跨平台运行的应用程序。通过使用Swing开发的学生信息管理系统,不仅能够实现高效的数据录入、维护与检索功能,而且其图形化的操作方式极大地简化了用户操作流程,提高了工作效率。

该系统应包括以下核心特点和功能:

基础数据维护:系统应支持对学生基本信息(如姓名、学号、性别、专业、成绩等)进行添加、修改和删除操作,确保数据的准确性和实时性。

学生信息列表展示:以表格形式直观显示学生信息,支持分页浏览、排序等功能。

查询功能:提供快捷的模糊查找功能,允许用户通过关键词搜索学生信息。

安全性保障:利用数据库访问控制和密码加密技术,提高系统的保密性和数据安全。

易用性设计:界面简洁明了,遵循良好的人机交互原则,降低学习成本,提升用户体验。

计算机化的学生信息管理系统替代传统的手工管理模式,有效解决了传统方式效率低下、数据安全性低的问题,同时能够为学校管理者提供及时、准确的数据支持,便于他们进行决策分析,进一步推动教育单位信息化进程的发展,符合现代教育管理科学化、规范化的要求。

用户登录注册:
用户输入账号密码进行登录、成功登录查看首页和学生信息。

在这里插入图片描述
实现相关逻辑代码

public class LoginFrame {
	public static JFrame lgframe = new JFrame("学生管理系统——用户登录");
	public static ImagePanel lgpan1 = new ImagePanel(new ImageIcon("tu" + File.separator + "1.jpg").getImage());
	public static ImagePanel lgpan2 = new ImagePanel(new ImageIcon("tu" + File.separator + "2.jpg").getImage());

	public static JLabel lglab3 = new JLabel("用户名:");
	public static JLabel lglab4 = new JLabel("密  码:");
	public static Font lgfnt1 = new Font("宋体", Font.BOLD, 20);
	public static Font lgfnt2 = new Font("宋体", Font.BOLD, 22);
	public static Font lgfnt3 = new Font("宋体", Font.ITALIC, 18);
	public static JTextField lgjtf = new JTextField("");// 用户账号
	public static JPasswordField lgjpwf = new JPasswordField("");// 用户密码
	public static JButton lgbut1 = new JButton("登录");
	public static JLabel lab = new JLabel();


	public LoginFrame() {
		// 设置容器的布局方式
		lgframe.setLayout(null);
		lgpan1.setLayout(new GridLayout(1, 1, 0, 0));
		lgpan2.setLayout(null);

		// 设置相关控件的大小
		Dimension ds = Toolkit.getDefaultToolkit().getScreenSize();
		lgpan1.setBounds(0, 0, 540, 230);
		lgpan2.setBounds(0, 230, 540, 185);

		lglab3.setBounds(98, 15, 90, 40);
		lglab4.setBounds(98, 55, 90, 40);

		lgjtf.setBounds(200, 15, 200, 40);
		lgjpwf.setBounds(200, 55, 200, 40);

		lgbut1.setBounds(195, 120, 150, 40);// 540-150=390

		// 设置控件的包括背景色在内的相关属性
		lgpan1.setBackground(Color.orange);
		lgpan2.setBackground(Color.green);
		lglab3.setFont(lgfnt1);
		lglab4.setFont(lgfnt1);
		lglab3.setForeground(Color.black);
		lglab4.setForeground(Color.black);
		lgjtf.setFont(lgfnt3);//
		lgjpwf.setFont(lgfnt2);
		lgbut1.setFont(lgfnt2);
		lgjpwf.setEchoChar('*');

		// 将控件添加进相应容器
		lgframe.add(lgpan1);
		lgframe.add(lgpan2);
		lgpan1.add(lab);
		lgpan2.add(lglab3);
		lgpan2.add(lglab4);
		lgpan2.add(lgjtf);
		lgpan2.add(lgjpwf);
		lgpan2.add(lgbut1);

		// 事件响应及处理
		lgbut1.addActionListener(new ActionListener() {// 用户点击登陆按钮后系统进行用户验证
			public void actionPerformed(ActionEvent e) {
				if (lgjtf.getText().equals("") || lgjtf.getText().equals("请输入用户账号")) {
					JOptionPane.showMessageDialog(null, "请输入用户账号!", "系统提示", JOptionPane.WARNING_MESSAGE);
				} else if ((!lgjtf.getText().equals("")) && (!lgjtf.getText().equals("请输入用户账号"))
						&& (String.valueOf(lgjpwf.getPassword()).equals(""))) {
					JOptionPane.showMessageDialog(null, "请输入用户密码!", "系统提示", JOptionPane.WARNING_MESSAGE);
				} else {
					login();
				}
			}
		});

		lgjtf.getDocument().addDocumentListener(new DocumentListener() { // JTextField事件监听与处理

			public void removeUpdate(DocumentEvent e) {
			}

			public void insertUpdate(DocumentEvent e) {
				lgjtf.setFont(lgfnt2);
			}

			public void changedUpdate(DocumentEvent e) {
			}
		});

		lgjtf.addFocusListener(new FocusListener() {// 焦点事件

			public void focusLost(FocusEvent e) {
				if (lgjtf.getText().equals("") || lgjtf.getText().equals("请输入用户账号")) {
					lgjtf.setText("请输入用户账号");
					lgjtf.setFont(lgfnt3);
				} else {
					;
				}
			}

			public void focusGained(FocusEvent e) {

			}
		});
		lgjtf.addMouseListener(new MouseListener() {

			public void mouseReleased(MouseEvent e) {

			}

			public void mousePressed(MouseEvent e) {

			}

			public void mouseExited(MouseEvent e) {

			}

			public void mouseEntered(MouseEvent e) {
			}

			public void mouseClicked(MouseEvent e) {
				if (lgjtf.getText().equals("") || lgjtf.getText().equals("请输入用户账号")) {
					lgjtf.setText("");
				} else {
					;
				}
			}
		});
		lgjpwf.addKeyListener(new KeyListener() {

			@Override
			public void keyTyped(KeyEvent e) {
				// TODO 自动生成的方法存根
			}

			public void keyPressed(KeyEvent e) {
				if (e.getKeyCode() == 10) {// *********************************************************
					if (lgjtf.getText().equals("") || lgjtf.getText().equals("请输入用户账号")) {
						JOptionPane.showMessageDialog(null, "请输入用户账号!", "系统提示", JOptionPane.WARNING_MESSAGE);
					} else if ((!lgjtf.getText().equals("")) && (!lgjtf.getText().equals("请输入用户账号"))
							&& (String.valueOf(lgjpwf.getPassword()).equals(""))) {
						JOptionPane.showMessageDialog(null, "请输入密码!", "系统提示", JOptionPane.WARNING_MESSAGE);
					} else {
						login();
					}
				}
			}

			public void keyReleased(KeyEvent e) {

			}
		});
		lgjpwf.addMouseListener(new MouseListener() {

			public void mouseClicked(MouseEvent e) {
				lgjpwf.setText("");

			}

			public void mousePressed(MouseEvent e) {
			}

			public void mouseReleased(MouseEvent e) {

			}

			public void mouseEntered(MouseEvent e) {

			}

			public void mouseExited(MouseEvent e) {
			}

		});

		lgframe.setSize(545, 450);
		lgframe.setLocation((int) ((ds.getWidth() - 545) / 2), (int) ((ds.getHeight() - 450) / 2));
		lgframe.setResizable(false);
		lgframe.setDefaultCloseOperation(lgframe.DISPOSE_ON_CLOSE);
		lgframe.setVisible(true);
	}

	public void login() {// 连接数据库,进行用户验证。
		String username = lgjtf.getText();
		String password = String.valueOf(lgjpwf.getPassword());
//		boolean loginRes = loginDao.login(username, password);
		if ("admin".equals(username) && "admin".equals(password)) {
			lgframe.dispose();
			try {
				new MainFrame();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} else {
			JOptionPane.showMessageDialog(null, "用户名密码不匹配!", "系统提示", JOptionPane.WARNING_MESSAGE);
		}
	}
}

增加删除修改
在这里插入图片描述
相关逻辑

public void delete(int id) {
		boolean isDeleted = false;
		for (int i = students.size() - 1; i >= 0; i--) {
			if (students.get(i).getId().equals(id)) {
				students.remove(i);
				isDeleted = true;
				break;
			}
		}

	}

	/**
	 * 查询全部
	 * 
	 * @param
	 * @return
	 */
	public List<Student> queryAll(String keyword){
		readFile02();
		List<Student> stuList = new ArrayList<>();
		if (!"".equals(keyword)) {
			for (Student student : students) {
				if (student.getCode().equals(keyword) || student.getName().equals(keyword) || student.getDormitory().equals(keyword)) {
					stuList.add(student);
				}
			}
			return stuList;
		}
		return students;
	}

	public static void readFile02() {
		try {
			FileInputStream fis=new FileInputStream("E:/example.txt");
			InputStreamReader isr=new InputStreamReader(fis, "GBK");
			BufferedReader br = new BufferedReader(isr);
			//简写如下
			//BufferedReader br = new BufferedReader(new InputStreamReader(
			//        new FileInputStream("E:/phsftp/evdokey/evdokey_201103221556.txt"), "UTF-8"));
			String line="";
			String[] arrs=null;
			students.clear();
			while ((line=br.readLine())!=null) {
				arrs=line.split(",");
				Student student = new Student(Integer.valueOf(arrs[0]),arrs[1],arrs[2],arrs[3],arrs[4],arrs[5],arrs[6],arrs[7],arrs[8],arrs[9],arrs[10]);
				System.out.println(arrs[0] + " : " + arrs[1] + " : " + arrs[2]);
				students.add(student);
			}
			br.close();
			isr.close();
			fis.close();
		}catch (Exception e){
			e.printStackTrace();
		}
	}

总结:

在最近对Java面向对象程序设计和Swing GUI框架的学习实践中,java奥斯卡通过开发学生信息管理系统项目获得了深刻体会。他从最初的接触与认识到逐渐熟练掌握,并最终能够独立运用这些技术进行功能实现与测试。在这一过程中,他充分认识到Java语言在软件开发中的重要性,尤其是在系统中利用了Java的面向对象特性——抽象、封装、继承和多态,这不仅简化了代码组织结构,还显著提升了代码复用性和可扩展性,从而提高了整体开发效率。

接毕设

加q:2842869408

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值