사용자 관리 시스템: 자바 구현
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
'자바(java)' 카테고리의 다른 글
미로 탐험 게임: 미로 내에서 캐릭터를 움직여 목적지에 도달하는 게임을 제작합니다. (0) | 2023.12.20 |
---|---|
타자 연습 게임: 랜덤 단어를 화면에 표시하고 사용자의 타자 속도를 측정하는 게임을 개발합니다. (0) | 2023.12.20 |
음식 주문 시스템: 메뉴에서 음식을 선택하고 주문하는 시스템을 구축합니다. (1) | 2023.12.19 |
사전 애플리케이션: 사용자가 단어를 검색하고 의미를 확인할 수 있는 사전 앱을 제작합니다. (0) | 2023.12.19 |
메모리 게임: 숨겨진 그림을 찾아 짝을 맞추는 기억력 게임을 구현합니다. (0) | 2023.12.19 |