Java基础入门项目一:员工管理系统

woefulmoon 发布于 20 天前 Java







员工管理系统项目介绍


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