JRadioButtonMenuItem
Là mục menu dạng radio button: trong một ButtonGroup chỉ có một item được chọn tại một thời điểm. Kế thừa từ JMenuItem.
Ví dụ: Menu với 4 radio button items
import javax.swing.*;
import java.awt.*;
public class RadioButtonMenuItemExample extends JFrame {
private JMenuBar menuBar;
private JMenu menu;
private JRadioButtonMenuItem item1, item2, item3, item4;
private ButtonGroup group;
public RadioButtonMenuItemExample() {
setTitle("JRadioButtonMenuItem Demo");
setLayout(new FlowLayout());
group = new ButtonGroup();
menuBar = new JMenuBar();
menu = new JMenu("Menu");
// Item 1: text, selected mặc định
item1 = new JRadioButtonMenuItem("Item 1");
item1.setFont(new Font("Tahoma", Font.PLAIN, 11));
item1.setSelected(true);
// Item 2: dùng Action (BeepAction)
item2 = new JRadioButtonMenuItem(new DefaultEditorKit.BeepAction());
item2.setAccelerator(KeyStroke.getKeyStroke("ctrl 2"));
// Item 3: disabled
item3 = new JRadioButtonMenuItem("Item 3");
item3.setEnabled(false);
// Item 4: text, selected=true (sẽ ghi đè item1 do cùng group)
item4 = new JRadioButtonMenuItem("Item 4", true);
// Thêm vào group để chỉ chọn 1
group.add(item1);
group.add(item2);
group.add(item3);
group.add(item4);
// Thêm vào menu
menu.add(item1);
menu.add(item2);
menu.add(item3);
menu.add(item4);
menuBar.add(menu);
setJMenuBar(menuBar);
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(RadioButtonMenuItemExample::new);
}
}
Kết quả

Lưu ý: ButtonGroup không phải component, chỉ quản lý logic chọn đơn lẻ. Item disabled (item3) không thể chọn nhưng vẫn hiển thị.