본문 바로가기
자바(Java)

Java Swing을 사용하여 계산기를 만드는 프로그램 쉽게 이해하기

by 코딩하는 욤욤이 2024. 11. 20.
반응형

Java Swing은 GUI(그래픽 사용자 인터페이스) 애플리케이션을 개발할 수 있게 해주는 Java의 표준 라이브러리입니다. 이를 사용하여 계산기를 만드는 방법을 쉽게 따라할 수 있도록 단계별로 설명드리겠습니다.


1. 개요

Java Swing을 사용한 계산기는 숫자 버튼, 연산자 버튼(+, -, *, /), 그리고 결과를 표시하는 텍스트 필드로 구성됩니다. 이를 통해 사용자는 간단한 계산을 수행할 수 있습니다.


2. 준비물

  1. Java JDK(최소 버전 8 이상)
  2. 텍스트 편집기 또는 IDE(예: IntelliJ IDEA, Eclipse, VS Code)

3. 설계

기본 구성 요소:

  • JFrame: 계산기의 메인 창.
  • JTextField: 결과를 표시하는 텍스트 필드.
  • JButton: 숫자와 연산 버튼.
  • JPanel: 버튼 레이아웃 정렬.

4. 단계별 구현

4.1. 프로젝트 생성

  1. Java 프로젝트를 생성합니다.
  2. 클래스 이름을 Calculator로 지정합니다.

4.2. Swing 라이브러리 가져오기

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

4.3. 기본 GUI 설정

public class Calculator extends JFrame {
    private JTextField textField;
    private double num1, num2, result;
    private char operator;

    public Calculator() {
        // JFrame 설정
        setTitle("계산기");
        setSize(400, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 텍스트 필드 추가
        textField = new JTextField();
        textField.setFont(new Font("Arial", Font.BOLD, 24));
        textField.setHorizontalAlignment(JTextField.RIGHT);
        add(textField, BorderLayout.NORTH);

        // 버튼 추가
        add(createButtonPanel(), BorderLayout.CENTER);

        setVisible(true);
    }

4.4. 버튼 패널 생성

    private JPanel createButtonPanel() {
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(4, 4, 10, 10));

        String[] buttonTexts = {
            "7", "8", "9", "/",
            "4", "5", "6", "*",
            "1", "2", "3", "-",
            "C", "0", "=", "+"
        };

        for (String text : buttonTexts) {
            JButton button = new JButton(text);
            button.setFont(new Font("Arial", Font.BOLD, 20));
            button.addActionListener(new ButtonClickListener());
            panel.add(button);
        }

        return panel;
    }

4.5. 버튼 클릭 이벤트 처리

    private class ButtonClickListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            String command = e.getActionCommand();

            if (command.charAt(0) >= '0' && command.charAt(0) <= '9') {
                textField.setText(textField.getText() + command);
            } else if (command.equals("C")) {
                textField.setText("");
                num1 = num2 = result = 0;
                operator = '\0';
            } else if (command.equals("=")) {
                num2 = Double.parseDouble(textField.getText());
                switch (operator) {
                    case '+': result = num1 + num2; break;
                    case '-': result = num1 - num2; break;
                    case '*': result = num1 * num2; break;
                    case '/': result = num1 / num2; break;
                }
                textField.setText(String.valueOf(result));
                num1 = result; // 다음 연산에 대비
            } else {
                operator = command.charAt(0);
                num1 = Double.parseDouble(textField.getText());
                textField.setText("");
            }
        }
    }
}

 


5. 메인 메서드

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

6. 코드 실행

  1. 위 코드를 작성한 후 저장합니다.
  2. IDE나 명령어를 통해 프로그램을 실행합니다.

7. 결과

  • 계산기 창이 열리며 숫자와 연산 버튼을 눌러 계산할 수 있습니다.
  • C 버튼은 입력값을 초기화하고, = 버튼은 결과를 표시합니다.

8. 추가 개선

  • 색상 테마 추가
  • 더 복잡한 연산(제곱, 루트 등) 추가
  • 키보드 입력 기능 활성화

이 코드는 Swing의 기본 개념을 배우기에 적합하며, 단순한 계산기를 만들어보는 좋은 예제입니다. 질문이 있으면 언제든 물어보세요!

반응형