Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Swing으로 카운터 프로그램 구현하기 – 숫자를 세는 GUI 애플리케이션 만드는 방법

이 프로그램은 Java의 Swing 라이브러리를 활용하여 간단한 카운터(숫자 세기) 애플리케이션을 구현한 예제입니다. 화면에는 JLabel 컴포넌트로 'Count:'라는 레이블을 표시하고, 현재 숫자 값을 보여주는 JTextField, 그리고 JButton 컴포넌트로 Add(추가), Remove(제거), Reset(초기화) 세 개의 버튼을 배치합니다.

각 버튼의 동작 방식은 다음과 같습니다.

  • Add 버튼: 클릭할 때마다 JTextField에 표시된 카운트 값이 1씩 증가합니다.
  • Remove 버튼: 클릭할 때마다 카운트 값이 1씩 감소합니다.
  • Reset 버튼: 클릭하면 카운트 값이 0으로 초기화됩니다.

버튼 클릭 이벤트는 ActionListener 인터페이스를 통해 처리되며, actionPerformed() 메서드 안에서 어떤 버튼이 눌렸는지 getSource()로 판별한 후 카운트 값을 갱신하고 화면을 다시 그립니다.

예제 코드

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

public class CounterTest extends JFrame implements ActionListener {
    private JLabel label;
    private JTextField text;
    private JButton addBtn, removeBtn, resetBtn;
    private int count;

    public CounterTest() {
        setTitle("Counter Test");
        setLayout(new FlowLayout());
        count = 0;
        label = new JLabel("Count:");
        text = new JTextField("0", 4);
        addBtn = new JButton("Add");
        removeBtn = new JButton("Remove");
        resetBtn = new JButton("Reset");

        addBtn.addActionListener(this);
        removeBtn.addActionListener(this);
        resetBtn.addActionListener(this);

        add(label);
        add(text);
        add(addBtn);
        add(removeBtn);
        add(resetBtn);

        setSize(375, 250);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public void actionPerformed(ActionEvent ae) {
        if (ae.getSource() == addBtn) {
            count++; // 카운트를 1만큼 증가
            text.setText(String.valueOf(count));
            repaint();
        } else if (ae.getSource() == removeBtn) {
            count--; // 카운트를 1만큼 감소
            text.setText(String.valueOf(count));
            repaint();
        } else if (ae.getSource() == resetBtn) {
            count = 0; // 카운트를 0으로 초기화
            text.setText(String.valueOf(count));
            repaint();
        }
    }

    public static void main(String[] args) {
        new CounterTest();
    }
}

코드 설명

  • CounterTest 클래스: JFrame을 상속받아 윈도우 창을 만들고, ActionListener를 구현하여 버튼 이벤트를 처리합니다.
  • 생성자: 레이아웃 설정, 컴포넌트 생성 및 등록, 창 크기와 위치 지정 등 UI 초기화 작업을 수행합니다.
  • actionPerformed() 메서드: 클릭된 버튼에 따라 count 변수를 증가, 감소 또는 초기화한 뒤 setText()로 JTextField에 결과를 갱신합니다.

실행 결과

프로그램을 실행하면 아래와 같은 창이 나타나며, 각 버튼을 클릭할 때마다 숫자가 실시간으로 변경되는 것을 확인할 수 있습니다.

Java Swing으로 카운터 프로그램 구현하기 – 숫자를 세는 GUI 애플리케이션 만드는 방법