Java에서 JRadioButtonMenuItem은 JMenuItem 클래스의 하위 클래스로, 라디오 버튼 형태의 메뉴 항목을 구현할 때 사용됩니다. 여러 개의 라디오 버튼 메뉴 항목이 하나의 그룹에 속하게 되며, 이 그룹 안에서는 단 하나의 항목만 선택할 수 있습니다. 선택된 항목은 자신의 선택 상태를 화면에 표시합니다.
여러 개의 라디오 버튼 메뉴 항목을 하나의 ButtonGroup 객체에 추가하면 버튼 그룹을 형성할 수 있습니다. 그룹 내에서 한 항목이 선택되면, 나머지 모든 라디오 버튼 메뉴 항목은 자동으로 선택 해제됩니다. 이는 일반적인 라디오 버튼의 동작 방식과 동일하며, 설정 메뉴나 보기 옵션처럼 상호 배타적인 선택지를 제공해야 하는 UI에 적합합니다.
문법(Syntax)
public class JRadioButtonMenuItem extends JMenuItem implements Accessible
주요 생성자
- JRadioButtonMenuItem(): 아무 텍스트도 없는 빈 메뉴 항목을 생성합니다.
- JRadioButtonMenuItem(Action a): 지정된 Action 객체로부터 속성을 가져와 메뉴 항목을 생성합니다.
- JRadioButtonMenuItem(String text): 지정한 텍스트를 표시하는 메뉴 항목을 생성합니다.
- JRadioButtonMenuItem(String text, boolean selected): 텍스트와 함께 초기 선택 상태를 지정하여 생성합니다.
예제 코드
아래 예제에서는 네 개의 라디오 버튼 메뉴 항목을 생성하고, ButtonGroup에 추가하여 하나의 그룹으로 묶는 방법을 보여줍니다.
import javax.swing.*;
import java.awt.*;
public class JRadioButtonMenuItemTest extends JFrame {
private JMenuBar mb;
private JMenu m;
private JRadioButtonMenuItem m1, m2, m3, m4;
private ButtonGroup bg;
public JRadioButtonMenuItemTest() {
setTitle("JRadioButtonMenuItem Test");
setLayout(new FlowLayout());
bg = new ButtonGroup();
mb = new JMenuBar();
m = new JMenu("Menu");
m1 = new JRadioButtonMenuItem();
m2 = new JRadioButtonMenuItem(new javax.swing.text.DefaultEditorKit.BeepAction());
m3 = new JRadioButtonMenuItem("Item 3");
m4 = new JRadioButtonMenuItem("Item 4", true);
m1.setText("Item 1");
m1.setFont(new Font("Tahoma", Font.PLAIN, 11));
m1.setSelected(true);
m2.setAccelerator(KeyStroke.getKeyStroke("ctrl 2"));
m3.setEnabled(false);
bg.add(m1);
bg.add(m2);
bg.add(m3);
bg.add(m4);
m.add(m1);
m.add(m2);
m.add(m3);
m.add(m4);
mb.add(m);
setJMenuBar(mb);
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String args[]) {
new JRadioButtonMenuItemTest();
}
}
코드 설명
- m1: 기본 생성자로 생성 후 setText()로 텍스트를 지정하고, setSelected(true)를 호출하여 기본 선택 상태로 만듭니다.
- m2: Action 객체(BeepAction)를 전달하여 생성하며, setAccelerator()로 단축키(Ctrl+2)를 설정합니다.
- m3: 텍스트만 지정하여 생성하고, setEnabled(false)로 비활성화 상태로 만듭니다.
- m4: 텍스트와 함께 true를 전달하여 처음부터 선택된 상태로 생성합니다.
- 네 항목 모두 ButtonGroup(bg)에 추가되어, 하나를 선택하면 나머지가 자동으로 해제됩니다.
실행 결과
프로그램을 실행하면 프레임 상단의 메뉴 바에 "Menu" 메뉴가 표시되고, 클릭 시 네 개의 라디오 버튼 메뉴 항목이 나타납니다. 기본적으로 "Item 4"가 선택된 상태로 시작하며(생성자에서 true로 지정), 사용자가 다른 항목을 클릭하면 해당 항목만 선택되고 이전에 선택된 항목은 자동으로 해제됩니다.