본문 바로가기

자바(java)

투표 시스템: 사용자가 투표하고 결과를 표시하는 간단한 투표 시스템을 만듭니다.

반응형

투표 시스템: 자바 기반 개발

1. 내용 설명

이 프로그램은 자바를 이용하여 만든 간단한 투표 시스템입니다. 사용자는 주어진 옵션 중에서 선택하여 투표할 수 있으며, 투표 결과는 실시간으로 화면에 업데이트됩니다. 이 시스템은 Swing을 사용하여 GUI를 구현하고, 사용자의 투표 선택을 처리합니다.

2. 프로그램 간 사용 함수 설명

  • createAndShowGUI(): 사용자 인터페이스를 생성하고 보여줍니다. 투표 옵션과 결과를 표시하는 레이블을 포함합니다.
  • addActionListeners(): 각 투표 버튼에 액션 리스너를 추가합니다. 버튼 클릭 시 해당 옵션의 투표 수를 증가시키고 결과를 업데이트합니다.
  • updateResults(): 현재 투표 결과를 계산하고 화면에 표시합니다.
  • main(String[] args): 프로그램의 진입점입니다. GUI를 생성하고 표시합니다.

3. 코딩 내용

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;

public class VotingSystem {
    private JFrame frame;
    private Map<String, Integer> votes;
    private JLabel resultsLabel;

    public VotingSystem() {
        votes = new HashMap<>();
        createAndShowGUI();
        addActionListeners();
    }

    private void createAndShowGUI() {
        frame = new JFrame("Voting System");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());

        String[] options = {"Option 1", "Option 2", "Option 3"};
        for (String option : options) {
            votes.put(option, 0);
            JButton button = new JButton(option);
            frame.add(button);
            button.addActionListener(e -> castVote(option));
        }

        resultsLabel = new JLabel("Results: ");
        frame.add(resultsLabel);
        frame.pack();
        frame.setVisible(true);
    }

    private void addActionListeners() {
        // Add action listeners for voting buttons
    }

    private void castVote(String option) {
        votes.put(option, votes.get(option) + 1);
        updateResults();
    }

    private void updateResults() {
        StringBuilder results = new StringBuilder("<html>Results:<br/>");
        votes.forEach((option, count) -> results.append(option).append(": ").append(count).append("<br/>"));
        results.append("</html>");
        resultsLabel.setText(results.toString());
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(VotingSystem::new);
    }
}

 

4. 전문용어

  • Swing: 자바의 GUI 위젯 툴킷입니다.
  • JFrame: GUI 윈도우를 생성하는 클래스입니다.
  • JButton: 사용자가 클릭할 수 있는 버튼을 생성하는 클래스입니다.
  • JLabel: 텍스트를 표시하는 컴포넌트입니다.
  • HashMap: 키-값 쌍을 저장하는 자바의 컬렉션 클래스입니다.
  • ActionListener: 버튼 클릭과 같은 액션 이벤트를 처리하는 인터페이스입니다.

5. 라이브러리 추가 및 실행 방법

본 프로그램은 자바 표준 라이브러리의 Swing 컴포넌트를 사용하므로, 별도의 라이브러리 추가가 필요하지 않습니다.

 

컴파일 방법:
javac VotingSystem.java

 

실행 방법:
java VotingSystem

반응형