반응형
Java의 AWT(Abstract Window Toolkit)를 사용하여 간단한 계산기를 만드는 프로그램을 작성하려면, 다음과 같은 단계를 통해 진행할 수 있습니다. 아래에는 프로그램의 구조와 각 요소를 쉽게 이해할 수 있도록 자세히 설명하겠습니다.
1. AWT란 무엇인가?
AWT(Abstract Window Toolkit)는 Java에서 GUI(Graphical User Interface)를 만드는 기본적인 도구입니다. 버튼, 텍스트 필드, 레이블, 프레임 등 다양한 컴포넌트를 제공하여 그래픽 기반의 프로그램을 쉽게 만들 수 있도록 돕습니다.
2. 계산기의 주요 기능
- 두 숫자를 입력받아 덧셈, 뺄셈, 곱셈, 나눗셈을 수행.
- 결과를 화면에 표시.
3. 프로그램 설계
1) 사용자 인터페이스(UI) 구성
계산기는 다음 컴포넌트들로 구성됩니다:
- 두 개의 텍스트 필드 (숫자 입력용)
- 네 개의 버튼 (+, -, *, /)
- 결과를 보여줄 레이블
2) 이벤트 처리
버튼을 클릭하면 연산이 수행되고 결과가 표시되도록 합니다. 이를 위해 AWT에서 제공하는 ActionListener를 사용합니다.
4. 코드 작성
import java.awt.*;
import java.awt.event.*; // 이벤트 처리를 위한 패키지
// 계산기 클래스는 Frame을 상속받아 GUI를 구성
public class Calculator extends Frame implements ActionListener {
// 컴포넌트 선언
TextField num1, num2; // 숫자 입력용 텍스트 필드
Label resultLabel; // 결과를 보여주는 레이블
Button addButton, subButton, mulButton, divButton; // 연산 버튼
// 생성자 (초기화)
public Calculator() {
// 프레임의 제목 설정
setTitle("AWT 계산기");
setSize(400, 300); // 프레임 크기 설정
setLayout(new FlowLayout()); // 간단한 레이아웃 설정
// 컴포넌트 초기화
num1 = new TextField(10); // 첫 번째 숫자 입력
num2 = new TextField(10); // 두 번째 숫자 입력
resultLabel = new Label("결과: "); // 결과 표시
addButton = new Button("+"); // 덧셈 버튼
subButton = new Button("-"); // 뺄셈 버튼
mulButton = new Button("*"); // 곱셈 버튼
divButton = new Button("/"); // 나눗셈 버튼
// 컴포넌트를 프레임에 추가
add(new Label("숫자 1:"));
add(num1);
add(new Label("숫자 2:"));
add(num2);
add(addButton);
add(subButton);
add(mulButton);
add(divButton);
add(resultLabel);
// 이벤트 리스너 추가
addButton.addActionListener(this);
subButton.addActionListener(this);
mulButton.addActionListener(this);
divButton.addActionListener(this);
// 프레임 종료 설정
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0); // 프로그램 종료
}
});
}
// ActionListener 구현 (버튼 클릭 시 호출)
@Override
public void actionPerformed(ActionEvent e) {
try {
// 텍스트 필드에서 입력받은 숫자 가져오기
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
double result = 0;
// 어떤 버튼이 클릭되었는지 확인
if (e.getSource() == addButton) {
result = n1 + n2;
} else if (e.getSource() == subButton) {
result = n1 - n2;
} else if (e.getSource() == mulButton) {
result = n1 * n2;
} else if (e.getSource() == divButton) {
if (n2 != 0) { // 나눗셈은 0으로 나누기 방지
result = n1 / n2;
} else {
resultLabel.setText("결과: 0으로 나눌 수 없습니다!");
return;
}
}
// 결과를 레이블에 표시
resultLabel.setText("결과: " + result);
} catch (NumberFormatException ex) {
resultLabel.setText("결과: 숫자를 입력하세요!");
}
}
// main 메서드 (프로그램 시작점)
public static void main(String[] args) {
Calculator calc = new Calculator(); // 계산기 객체 생성
calc.setVisible(true); // 프레임 표시
}
}
5. 코드 설명
- 프레임 생성
Calculator 클래스는 Frame을 상속받아 AWT 프레임 창을 생성합니다.
setTitle, setSize, setLayout 등을 사용해 프레임의 기본 설정을 지정합니다. - 컴포넌트 추가
텍스트 필드, 버튼, 레이블 등 사용자와 상호작용할 컴포넌트를 생성하고, add 메서드로 프레임에 추가합니다. - 이벤트 처리
버튼 클릭 이벤트를 처리하기 위해 ActionListener를 구현합니다. 각 버튼은 연산을 수행하며, 결과를 레이블에 출력합니다. - 예외 처리
사용자가 숫자가 아닌 값을 입력하거나, 0으로 나누는 경우 오류 메시지를 출력합니다. - 프로그램 실행
main 메서드에서 계산기 객체를 생성하고, 프레임을 화면에 표시합니다.
6. 프로그램 실행 방법
- 위 코드를 Java 파일에 저장 (예: Calculator.java).
- 명령 프롬프트(또는 IDE)에서 컴파일:
javac Calculator.java
3.실행
java Calculator
7. 결과
프레임이 실행되면 숫자를 입력하고 연산 버튼을 클릭하여 결과를 확인할 수 있습니다. 예를 들어, "10"과 "5"를 입력하고 "+" 버튼을 누르면 결과 레이블에 결과: 15.0이 표시됩니다.
8. 추가 학습 포인트
- 레이아웃 관리: GridLayout 등 다른 레이아웃을 사용하여 더 깔끔한 UI를 만들 수 있습니다.
- 스윙(Swing): AWT보다 발전된 GUI 도구로, AWT 대신 사용할 수 있습니다.
- 에러 메시지 개선: 대화 상자(Dialog)를 사용해 사용자에게 오류를 더 명확히 전달할 수 있습니다.
이 프로그램은 Java GUI 프로그래밍의 기본을 배우는 데 좋은 출발점이 될 것입니다!
반응형
'자바(Java)' 카테고리의 다른 글
"자바로 문자열 팰린드롬 프로그램 작성"에 대해 쉽게 이해하기 (1) | 2024.11.22 |
---|---|
Java Swing을 사용하여 계산기를 만드는 프로그램 쉽게 이해하기 (0) | 2024.11.20 |
조화급수 1 + 1/2 + 1/3 + 1/4 + 1/5 +……+ 1/n의 합을 구하는 자바 프로그램 쉽게 이해하기 (0) | 2024.11.18 |
기수 정렬 Java 프로그램 및 알고리즘 쉽게 이해하기 (0) | 2024.11.17 |
Java에서 이진 검색을 위한 프로그램 쉽게 이해하기 (0) | 2024.11.16 |