계산기: 자바 기반 개발
1. 내용 설명
이 프로그램은 자바를 사용하여 만든 간단한 계산기 애플리케이션입니다. 사용자는 수학적 연산을 위한 숫자와 연산자를 입력할 수 있으며, 기본적인 연산인 덧셈, 뺄셈, 곱셈, 나눗셈을 수행할 수 있습니다. 연산 결과는 인터페이스에 즉시 표시됩니다.
2. 프로그램 간 사용 함수 설명
- createAndShowGUI(): 사용자 인터페이스를 생성하고 보여줍니다. 숫자와 연산자 버튼, 결과를 표시하는 텍스트 필드를 포함합니다.
- addActionListeners(): 버튼에 액션 리스너를 추가하여 버튼이 클릭될 때마다 적절한 작업을 수행합니다.
- performOperation(): 사용자의 입력에 따라 적절한 수학 연산을 수행하고 결과를 반환합니다.
3. 코딩 내용
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator {
private JFrame frame;
private JTextField resultField;
private JPanel buttonPanel;
private double result = 0;
private String operator = "=";
private boolean calculating = true;
public Calculator() {
createAndShowGUI();
}
private void createAndShowGUI() {
frame = new JFrame("Calculator");
resultField = new JTextField("0", 12);
resultField.setEditable(false);
buttonPanel = new JPanel();
String[] buttonLabels = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", "=", "C", "+"
};
for (String label : buttonLabels) {
JButton button = new JButton(label);
button.addActionListener(e -> buttonClicked(e));
buttonPanel.add(button);
}
frame.setLayout(new BorderLayout());
frame.add(resultField, BorderLayout.NORTH);
frame.add(buttonPanel, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
private void buttonClicked(ActionEvent e) {
String command = e.getActionCommand();
if ('0' <= command.charAt(0) && command.charAt(0) <= '9' || command.equals(".")) {
if (calculating) {
resultField.setText(command);
} else {
resultField.setText(resultField.getText() + command);
}
calculating = false;
} else {
if (calculating) {
if (command.equals("-")) {
resultField.setText(command);
calculating = false;
} else {
operator = command;
}
} else {
double x = Double.parseDouble(resultField.getText());
calculate(x);
operator = command;
calculating = true;
}
}
}
private void calculate(double n) {
switch (operator) {
case "+": result += n; break;
case "-": result -= n; break;
case "*": result *= n; break;
case "/": result /= n; break;
case "=": result = n; break;
}
resultField.setText("" + result);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(Calculator::new);
}
}
4. 전문용어
- JFrame: Swing GUI 컴포넌트의 윈도우 프레임입니다.
- JTextField: 사용자의 텍스트 입력을 받는 필드입니다.
- JButton: 클릭할 수 있는 버튼 컴포넌트입니다.
- ActionListener: 버튼 클릭과 같은 이벤트에 반응하기 위한 리스너 인터페이스입니다.
- BorderLayout: 컴포넌트를 북, 남, 동, 서, 중앙의 영역에 배치하는 레이아웃 매니저입니다.
5. 라이브러리 추가 및 실행 방법
- 본 프로그램은 자바 표준 라이브러리의 Swing 컴포넌트를 사용합니다.
컴파일:
javac Calculator.java
실행:
java Calculator
'자바(java)' 카테고리의 다른 글
토끼와 거북이 경주 게임: 토끼와 거북이가 경주하는 게임을 만들어 승자를 결정합니다. (0) | 2023.12.19 |
---|---|
캘린더 애플리케이션: 달력을 표시하고 일정을 추가하고 관리하는 애플리케이션을 제작합니다. (0) | 2023.12.19 |
날씨 알리미: API를 활용하여 날씨 정보를 가져와 사용자에게 보여주는 알리미를 만듭니다. (0) | 2023.12.19 |
일기장 애플리케이션: 일기를 작성하고 저장하며 날짜별로 관리하는 애플리케이션을 개발합니다. (0) | 2023.12.19 |
투표 시스템: 사용자가 투표하고 결과를 표시하는 간단한 투표 시스템을 만듭니다. (0) | 2023.12.19 |