주소록 관리 애플리케이션은 사용자가 연락처 정보를 저장하고 관리할 수 있도록 해주는 프로그램입니다. 이 애플리케이션은 Java로 구현되며, Java Swing을 사용하여 그래픽 사용자 인터페이스(GUI)를 제공합니다.
1. 내용 설명
주소록 관리 앱은 연락처 정보를 추가, 삭제, 검색, 수정할 수 있는 기능을 제공합니다. 각 연락처에는 이름, 전화번호, 이메일 주소 등의 정보가 포함될 수 있습니다. 사용자는 이러한 정보를 관리하고 필요할 때 검색할 수 있습니다.
2. 프로그램간 사용 함수 설명
- addContact(Contact contact): 새로운 연락처를 추가합니다.
- removeContact(String name): 지정한 이름의 연락처를 삭제합니다.
- searchContact(String name): 지정한 이름으로 연락처를 검색합니다.
- updateContact(Contact contact): 기존 연락처 정보를 업데이트합니다.
- displayContacts(): 저장된 모든 연락처를 표시합니다.
3. 코딩 내용
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
public class AddressBookApp extends JFrame {
private Map<String, Contact> contacts;
private JTextField nameField, phoneField, emailField;
private JTextArea contactListArea;
public AddressBookApp() {
setTitle("Address Book");
setSize(500, 400);
setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contacts = new HashMap<>();
setupUI();
setVisible(true);
}
private void setupUI() {
JPanel inputPanel = new JPanel(new GridLayout(3, 2));
nameField = new JTextField();
phoneField = new JTextField();
emailField = new JTextField();
inputPanel.add(new JLabel("Name:"));
inputPanel.add(nameField);
inputPanel.add(new JLabel("Phone:"));
inputPanel.add(phoneField);
inputPanel.add(new JLabel("Email:"));
inputPanel.add(emailField);
add(inputPanel, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel();
JButton addButton = new JButton("Add");
JButton removeButton = new JButton("Remove");
JButton searchButton = new JButton("Search");
JButton updateButton = new JButton("Update");
buttonPanel.add(addButton);
buttonPanel.add(removeButton);
buttonPanel.add(searchButton);
buttonPanel.add(updateButton);
add(buttonPanel, BorderLayout.CENTER);
contactListArea = new JTextArea(10, 40);
contactListArea.setEditable(false);
add(new JScrollPane(contactListArea), BorderLayout.SOUTH);
addButton.addActionListener(e -> addContact());
removeButton.addActionListener(e -> removeContact());
searchButton.addActionListener(e -> searchContact());
updateButton.addActionListener(e -> updateContact());
}
private void addContact() {
String name = nameField.getText();
String phone = phoneField.getText();
String email = emailField.getText();
if (!name.isEmpty() && !phone.isEmpty()) {
contacts.put(name, new Contact(name, phone, email));
displayContacts();
} else {
JOptionPane.showMessageDialog(this, "Name and phone are required.");
}
}
private void removeContact() {
String name = nameField.getText();
if (contacts.containsKey(name)) {
contacts.remove(name);
displayContacts();
} else {
JOptionPane.showMessageDialog(this, "Contact not found.");
}
}
private void searchContact() {
String name = nameField.getText();
if (contacts.containsKey(name)) {
Contact contact = contacts.get(name);
contactListArea.setText(contact.toString());
} else {
JOptionPane.showMessageDialog(this, "Contact not found.");
}
}
private void updateContact() {
String name = nameField.getText();
if (contacts.containsKey(name)) {
String phone = phoneField.getText();
String email = emailField.getText();
contacts.put(name, new Contact(name, phone, email));
displayContacts();
} else {
JOptionPane.showMessageDialog(this, "Contact not found.");
}
}
private void displayContacts() {
String allContacts = contacts.values().stream()
.map(Contact::toString)
.collect(Collectors.joining("\n"));
contactListArea.setText(allContacts);
}
public static void main(String[] args) {
new AddressBookApp();
}
}
class Contact {
String name;
String phoneNumber;
String email;
public Contact(String name, String phoneNumber, String email) {
this.name = name;
this.phoneNumber = phoneNumber;
this.email = email;
}
@Override
public String toString() {
return "Name: " + name + ", Phone: " + phoneNumber + ", Email: " + email;
}
}
4. 전문용어
- Java: 객체 지향 프로그래밍 언어입니다.
- Swing: Java의 그래픽 사용자 인터페이스 툴킷입니다.
- GUI: 사용자가 그래픽을 통해 상호작용하는 인터페이스입니다.
- HashMap: 키와 값으로 데이터를 저장하는 Java 컬렉션 클래스입니다.
5. 라이브러리 추가 및 실행 방법
라이브러리
- Java 표준 라이브러리 (Swing)
실행 방법
- Java 개발 환경을 설치합니다.
- 위의 코드를 Java 파일로 저장합니다.
- 컴파일 후 실행합니다.
컴파일
javac -encoding UTF-8 AddressBookApp.java
실행
java AddressBookApp
'자바(java)' 카테고리의 다른 글
단어 퍼즐 게임: 스크램블 된 글자를 재배열하여 단어를 맞추는 게임을 만듭니다. (1) | 2023.12.21 |
---|---|
사진 및 비디오 갤러리: 사진과 비디오를 관리하고 갤러리 형태로 표시하는 앱을 구현합니다. (0) | 2023.12.21 |
다기능 멋진 브라우저: 웹 페이지를 열고 탐색할 수 있는 멋진 브라우저를 만듭니다. (1) | 2023.12.21 |
전자책 페이지를 넘길 수 있는 리더 애플리케이션을 제작다. (0) | 2023.12.21 |
계좌 관리 프로그램: 윈도우에서 수입과 지출을 기록하고 잔액을 관리하는 가계부 앱을 설계합니다. (0) | 2023.12.21 |