Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Hiển thị JRadioButtonMenuItem trong Java Swing

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ả

Hiển thị JRadioButtonMenuItem trong Java Swing

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ị.