Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのJRadioButtonMenuItemとは?メニュー項目の作成方法とサンプルコードを解説

JRadioButtonMenuItemは、Java SwingのJMenuItemクラスを継承したサブクラスです。同じグループに属する複数のメニュー項目の中から1つだけを選択できるラジオボタン形式のメニュー項目で、選択された項目にはその選択状態が表示されます。

複数のJRadioButtonMenuItemをButtonGroupオブジェクトに追加することでボタングループを形成できます。グループ内のいずれかの項目が選択されると、その他のすべてのラジオボタンメニュー項目は自動的に選択解除されます。この仕組みにより、設定画面などで「排他的な選択」を簡単に実現できます。

構文

public class JRadioButtonMenuItem extends JMenuItem implements Accessible

主なコンストラクタ

  • JRadioButtonMenuItem() … テキストなしの空のメニュー項目を作成
  • JRadioButtonMenuItem(Action a) … 指定したActionからプロパティを取得して作成
  • JRadioButtonMenuItem(String text) … 指定したテキストを持つメニュー項目を作成
  • JRadioButtonMenuItem(String text, boolean selected) … テキストと初期選択状態を指定して作成

実装例

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();
    }
}

実行結果

JavaのJRadioButtonMenuItemとは?メニュー項目の作成方法とサンプルコードを解説

ポイントまとめ

  • setSelected(true)で初期選択状態を設定できます。
  • setAccelerator(KeyStroke.getKeyStroke("ctrl 2"))のようにショートカットキーを割り当てられます。
  • setEnabled(false)で特定の項目を無効化できます。
  • 同一のButtonGroupに追加された項目は、必ず1つだけが選択される排他的な動作になります。
  1. JavaのJTableセルにJRadioButton(ラジオボタン)を追加・挿入する方法

    JTableはJComponentクラスのサブクラスであり、情報を複数の行(Row)と列(Column)で表示するテーブルを作成するために使用できるSwingコンポーネントです。JTable上で値が選択されるとTableModelEventが生成され、このイベントはTableModelListenerインターフェースを実装することによって処理されます。 JTableのセルにラジオボタン(JRadioButton)を追加・挿入したい場合は、TableCellRendererインターフェースとDefaultCellEditorクラスをそれぞれカスタマイズします。レンダラーがセルの「表示」を担当し、

  2. Javaでカウンタープログラムを実装する方法をわかりやすく解説

    この記事では、JavaのSwingを使ってシンプルなカウンター(数を数える)アプリケーションを実装する方法を解説します。このプログラムでは、JLabelでカウント用のラベルを表示し、JTextFieldで現在のカウント値を保持し、JButtonで「追加(Add)」「削除(Remove)」「リセット(Reset)」の3つのボタンを作成します。 「Add」ボタンをクリックするとJTextField内のカウントが1ずつ増加し、「Remove」ボタンをクリックすると1ずつ減少します。さらに「Reset」ボタンをクリックすると、カウントは0にリセットされます。 実装例 import java.awt.*