본문 바로가기

자바(java)

사용자 관리 시스템: 사용자 정보를 관리하고 등록, 수정, 삭제할 수 있는 시스템을 만듭니다.

반응형

사용자 관리 시스템: 자바 구현

1. 내용 설명

사용자 관리 시스템은 사용자의 정보를 등록, 수정, 삭제할 수 있는 애플리케이션입니다. 각 사용자는 고유한 정보(예: 이름, 이메일, 전화번호)를 가지며, 이 시스템을 통해 관리자는 이러한 정보를 효율적으로 관리할 수 있습니다. Swing GUI를 사용하여 사용자 인터페이스를 제공합니다.

2. 프로그램 간 사용 함수 설명

  • createAndShowGUI(): GUI를 생성하고 보여줍니다.
  • initializeData(): 초기 사용자 데이터를 설정합니다.
  • addUser(): 새 사용자를 추가합니다.
  • editUser(): 기존 사용자 정보를 수정합니다.
  • deleteUser(): 사용자를 삭제합니다.
  • refreshDisplay(): 변경 사항을 GUI에 반영합니다.

3. 코딩 내용

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;

public class UserManager {
    private JFrame frame;
    private JList<String> userList;
    private DefaultListModel<String> userModel;
    private Map<String, User> users;

    public UserManager() {
        createAndShowGUI();
    }

    private void createAndShowGUI() {
        frame = new JFrame("User Management System");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());

        userModel = new DefaultListModel<>();
        userList = new JList<>(userModel);
        userList.setPreferredSize(new Dimension(200, 200));
        frame.add(new JScrollPane(userList));

        JButton addButton = new JButton("Add User");
        addButton.addActionListener(e -> addUser());
        frame.add(addButton);

        JButton editButton = new JButton("Edit User");
        editButton.addActionListener(e -> editUser());
        frame.add(editButton);

        JButton deleteButton = new JButton("Delete User");
        deleteButton.addActionListener(e -> deleteUser());
        frame.add(deleteButton);

        initializeData();
        frame.pack();
        frame.setVisible(true);
    }

    private void initializeData() {
        users = new HashMap<>();
    }

    private void addUser() {
        String name = JOptionPane.showInputDialog(frame, "Enter Name:");
        if (name != null && !name.trim().isEmpty()) {
            String email = JOptionPane.showInputDialog(frame, "Enter Email:");
            String phoneNumber = JOptionPane.showInputDialog(frame, "Enter Phone Number:");
            users.put(name, new User(name, email, phoneNumber));
            userModel.addElement(name);
        }
    }

    private void editUser() {
        String selected = userList.getSelectedValue();
        if (selected != null) {
            User user = users.get(selected);
            String newName = JOptionPane.showInputDialog(frame, "Edit Name:", user.name);
            if (newName != null && !newName.trim().isEmpty()) {
                user.name = newName;
                user.email = JOptionPane.showInputDialog(frame, "Edit Email:", user.email);
                user.phoneNumber = JOptionPane.showInputDialog(frame, "Edit Phone Number:", user.phoneNumber);
                users.put(newName, user);
                users.remove(selected);
                userModel.removeElement(selected);
                userModel.addElement(newName);
            }
        }
    }

    private void deleteUser() {
        String selected = userList.getSelectedValue();
        if (selected != null) {
            users.remove(selected);
            userModel.removeElement(selected);
        }
    }

    public static void main(String[] args) {
    SwingUtilities.invokeLater(() -> new UserManager());
    }
}

class User {
    String name;
    String email;
    String phoneNumber;

    public User(String name, String email, String phoneNumber) {
        this.name = name;
        this.email = email;
        this.phoneNumber = phoneNumber;
    }
}

 

4. 전문용어

  • JFrame: 자바 Swing의 창 프레임입니다.
  • JList: 리스트를 표시하는 컴포넌트입니다.
  • DefaultListModel: JList의 데이터 모델입니다.
  • JButton: 클릭 가능한 버튼 컴포넌트입니다.
  • HashMap: 키-값 쌍을 저장하는 자바의 컬렉션 클래스입니다.
  • ActionListener: 이벤트 리스너 인터페이스입니다.

5. 라이브러리 추가 및 실행 방법

  • 본 프로그램은 자바 표준 라이브러리의 Swing 컴포넌트를 사용합니다.

컴파일:
javac UserManager.java


실행:
java UserManager

반응형