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开发的参考案例。
