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

Java Swing JCheckBox에서 한 번에 하나의 항목만 선택하는 방법

JCheckBox란 무엇인가?

JCheckBoxJToggleButton을 확장한 컴포넌트로, 선택됨(checked) 또는 선택되지 않음(unchecked) 상태를 가질 수 있는 작은 사각형 박스입니다.

  • JCheckBox를 클릭하면 선택됨에서 선택되지 않음으로, 또는 그 반대로 자동으로 상태가 전환됩니다.
  • 체크박스의 상태가 변경될 때마다 ActionListener 또는 ItemListener 이벤트가 발생합니다.
  • isSelected() 메서드를 사용하면 체크박스가 현재 선택되어 있는지 여부를 확인할 수 있습니다.

ButtonGroup으로 단일 선택 구현하기

기본적으로 여러 개의 체크박스를 배치하면 사용자가 모든 항목을 동시에 선택할 수 있습니다. 하지만 라디오 버튼처럼 한 번에 하나의 항목만 선택되도록 하고 싶다면 ButtonGroup 클래스를 활용하면 됩니다. ButtonGroup에 체크박스들을 추가하면, 그룹 내에서 하나의 항목을 선택할 때 이전에 선택된 항목은 자동으로 해제됩니다.

예제 코드

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

public class JCheckBoxGroupTest extends JFrame {
   private ButtonGroup checkBoxGroup;
   private JCheckBox jcb1, jcb2, jcb3;
   private JPanel panel;

   public JCheckBoxGroupTest() {
      super("JCheckBoxGroup Test");
      panel = new JPanel(new GridLayout(3,0));
      jcb1 = new JCheckBox("India", true);
      jcb2 = new JCheckBox("England", false);
      jcb3 = new JCheckBox("Australia", false);
      checkBoxGroup = new ButtonGroup();
      // 체크박스를 ButtonGroup에 추가
      checkBoxGroup.add(jcb1);
      checkBoxGroup.add(jcb2);
      checkBoxGroup.add(jcb3);
      panel.add(jcb1);
      panel.add(jcb2);
      panel.add(jcb3);
      add(panel);
      setSize(375, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String args[]) {
      new JCheckBoxGroupTest();
   }
}

실행 결과

위 코드를 실행하면 세 개의 체크박스(India, England, Australia)가 화면에 표시됩니다. 처음에는 "India"가 기본적으로 선택되어 있으며, 다른 체크박스를 클릭하면 이전 선택이 자동으로 해제되고 새로운 항목만 선택된 상태로 유지됩니다.

Java Swing JCheckBox에서 한 번에 하나의 항목만 선택하는 방법

핵심 정리

  • ButtonGroup 객체를 생성하고 add() 메서드로 체크박스를 추가하면 단일 선택 동작이 적용됩니다.
  • ButtonGroup은 버튼들의 시각적 배치에는 영향을 주지 않으며, 오직 선택 상태의 논리적인 그룹화만 담당합니다.
  • 라디오 버튼(JRadioButton)과 마찬가지로 체크박스에도 동일한 방식으로 적용할 수 있어, UI 설계 시 유연하게 활용할 수 있습니다.