Java Swing 员工管理系统项目介绍
我要分享一个基于Java Swing开发的员工管理系统。这个系统具有完整的用户登录、员工信息管理功能,界面友好,操作简单。
项目亮点
- 基于Java Swing开发的GUI桌面应用
- 代码结构清晰
- 使用Lombok简化Java Bean代码
- 实现了完整的CRUD功能
- 友好的用户交互界面
- 包含登录验证和用户注册功能
1. 系统架构
1.1 核心类说明
系统主要由以下几个核心类组成:
- Employee.java - 员工实体类
- User.java - 用户实体类
- Login_UI.java - 登录界面
- Register_UI.java - 注册界面
- EmployeeInfoUI.java - 主界面
- AddEmployeeUI.java - 添加员工界面
- EditEmployeeUI.java - 编辑员工界面
1.2 实体类设计
系统的实体类使用了Lombok简化代码:
@Data @AllArgsConstructor @NoArgsConstructor public class Employee { int id; String name; String sex; int age; String department; String position; String entryDate; double salary; String phone; String education; String note; }
@Data @AllArgsConstructor @NoArgsConstructor public class User { private String username; private String password; private String nickname; }
2. 功能模块
2.1 用户认证模块
系统提供了完整的用户登录和注册功能:
// 登录验证逻辑 loginButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String username = usernameField.getText(); String password = new String(passwordField.getPassword()); boolean isUsernameExist = false; for (User user : allUser) { if (user.getUsername().equals(username)) { isUsernameExist = true; if (user.getPassword().equals(password)) { // 登录成功逻辑 EmployeeInfoUI employeeInfoUI = new EmployeeInfoUI(user.getNickname()); employeeInfoUI.setVisible(true); dispose(); break; } else { JOptionPane.showMessageDialog(Login_UI.this, "密码错误"); break; } } } if (!isUsernameExist) { JOptionPane.showMessageDialog(Login_UI.this, "用户名不存在"); } } });
2.2 员工管理模块
系统支持完整的员工信息CRUD操作:
- 添加员工 - 通过表单添加新员工信息
- 编辑员工 - 双击或右键编辑现有员工信息
- 删除员工 - 右键删除不需要的员工记录
- 搜索员工 - 根据关键词快速定位员工
// 员工信息表格渲染方法 public void renderTable() { tableModel.setRowCount(0); for(Employee employee:employees) { tableModel.addRow(new Object[]{ employee.getId(), employee.getName(), employee.getSex(), employee.getAge(), employee.getDepartment(), employee.getPosition(), employee.getEntryDate(), employee.getSalary(), employee.getPhone(), employee.getEducation(), employee.getNote() }); } }
3. 界面设计
3.1 登录界面
简洁美观的登录界面,包含用户名密码输入框和登录/注册按钮:
// 登录界面初始化代码 public Login_UI() { setTitle("登录"); setSize(400, 300); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 主面板使用GridBagLayout实现精细布局 JPanel mainPanel = new JPanel(new GridBagLayout()); // 省略布局代码... }
3.2 主界面
主界面采用表格形式展示员工信息,顶部有搜索框和添加按钮:
// 主界面初始化 public EmployeeInfoUI(String nickname) { setTitle("欢迎 " + nickname + " 登录员工管理系统"); setSize(1000, 600); // 创建表格模型 String[] columnNames = {"工号", "姓名", "性别", "年龄", "部门", "职位", "入职时间", "工资", "手机号", "学历", "备注"}; tableModel = new DefaultTableModel(columnNames, 0); // 添加上方面板(搜索框和按钮) JPanel topPanel = new JPanel(); topPanel.add(searchField); topPanel.add(searchButton); topPanel.add(addButton); add(topPanel, BorderLayout.NORTH); }
3.3 右键菜单
为员工表格添加了右键菜单,提供快速的编辑和删除功能:
// 右键菜单实现 JPopupMenu popupMenu = new JPopupMenu(); JMenuItem editMenuItem = new JMenuItem("编辑"); editMenuItem.addActionListener(e -> editEmployee()); JMenuItem deleteMenuItem = new JMenuItem("删除"); deleteMenuItem.addActionListener(e -> deleteEmployee()); employeeTable.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (SwingUtilities.isRightMouseButton(e)) { popupMenu.show(employeeTable, e.getX(), e.getY()); } } });
4. 技术细节
4.1 数据存储
系统目前使用内存存储数据(ArrayList):
// 数据存储在ArrayList中 private static ArrayListemployees = new ArrayList<>(); // 添加员工方法 public void addEmployee(Employee employee) { employees.add(employee); renderTable(); }
4.2 UI组件使用
系统充分利用了Swing提供的各种组件:
- JTable - 展示员工数据
- JTextField/JPasswordField - 输入框
- JComboBox - 下拉选择框
- JButton - 各种功能按钮
- JPopupMenu - 右键菜单
- JOptionPane - 消息提示框
4.3 布局管理
系统采用多种布局管理器实现精美界面:
- GridBagLayout - 登录界面精细布局
- BorderLayout - 主界面整体布局
- FlowLayout - 按钮面板布局
- GridLayout - 表单类界面布局
6. 总结
这是一个功能完善、界面友好的员工管理系统项目,涵盖了GUI开发中常用技术的应用,包括:
- Swing组件的综合使用
- 事件处理机制
- 表格数据展示与操作
- 表单设计与验证
- 界面布局管理
项目适合作为Java GUI开发的参考案例。