Literatur

JRadioButtonMenuItem

Die Klasse JRadioButtonMenuItem ist ebenso wie JCheckBoxMenuItem von JMenuItem abgeleitet.

Ein JRadioButtonMenuItem besteht aus einem Radiobutton und dem Menüeintrag. Ein Radiobutton ist in Java ein runder Auswahlknopf. Dieser wird eingesetzt, wenn der Anwender zwischen mehreren Optionen wählen kann. Daher tritt er auch in der Regel nicht alleine auf, sondern in einer sogenannten Gruppe. Ihnen ist der Radiobutton mit Sicherheit auch schon in anderen Anwendungen oder im Internet begegnet. Im Mozilla Firefox finden Sie ein Beispiel für ein Menü, welches aus Radiobutton-Menüeinträgen besteht, unter Ansicht -> Zeichenkodierung.

Wir erweitern nun unser Beispiel aus dem Kapitel JCheckBoxMenuItem um ein JRadioButtonMenuItem:

// Import-Anweisungen
import java.awt.Color;
import javax.swing.JDialog;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;
 
public class JRadioButtonMenuItemBeispiel
{
    // main-Methode
    public static void main(String[] args)
    {
        /* Erzeugung eines neuen Dialoges */
        JDialog meinJDialog = new JDialog();
        meinJDialog.setTitle("JMenuBar für unser Java Tutorial Beispiel.");
        // Wir setzen die Breite auf 450 und die Höhe 300 Pixel
        meinJDialog.setSize(450,300);
        // Zur Veranschaulichung erstellen wir hier eine Border
        Border bo = new LineBorder(Color.yellow);
        // Erstellung einer Menüleiste
        JMenuBar bar = new JMenuBar();
        // Wir setzen unsere Umrandung für unsere JMenuBar
        bar.setBorder(bo);
        // Erzeugung eines Objektes der Klasse JMenu
        JMenu menu = new JMenu("Ich bin ein JMenu");
        // Erzeugung eines Objektes der Klasse JMenuItem
        JMenuItem item = new JMenuItem("Ich bin das JMenuItem");
        // Wir fügen das JMenuItem unserem JMenu hinzu        
        menu.add(item);
        // Erzeugung eines Objektes der Klasse JCheckBoxMenuItem
        JCheckBoxMenuItem checkBoxItem = new JCheckBoxMenuItem
            ("Ich bin das JCheckBoxMenuItem");
        // JCheckBoxMenuItem wird unserem JMenu hinzugefügt 
        menu.add(checkBoxItem);
        // Erzeugung eines Objektes der Klasse JRadioButtonMenuItem
        JRadioButtonMenuItem radioButtonItem = new JRadioButtonMenuItem
            ("Ich bin ein JRadionButtonMenuItem");
        // JRadioButtonMenuItem wird unserem Menü hinzugefügt
        menu.add(radioButtonItem);
        // Menü wird der Menüleiste hinzugefügt
        bar.add(menu);
        // Menüleiste wird für den Dialog gesetzt
        meinJDialog.setJMenuBar(bar);
        // Wir lassen unseren Dialog anzeigen
        meinJDialog.setVisible(true);
    }
}

Nachdem unser Menü um ein JCheckBoxMenuItem erweitert wurde, haben wir nun unserem JMenu noch einen JRadioButtonMenuItem spendiert. Bei der Ausführung des Java-Quellcodes erhalten wir folgendes Bild:

Screenshot unseres JRadioButtonMenuItems aus unserem 
Java Tutorial

Sämtliche Konstruktoren sind von der Oberklasse JMenuItem übernommen worden. Es gibt aber genau wie bei JCheckBoxMenuItem zwei zusätzliche Konstruktoren, mittels derer man direkt den Status des jeweiligen Radiobuttons festlegen kann:

JRadioButtonMenuItem(String text, boolean selected)
JRadioButtonMenuItem(String text, Icon icon, boolean selected) 

Über den booleschen Parameter selected kann der Radiobutton mit dem Wert true auf selektiert (Kreis mit Punkt, vgl. Screenshot) bzw. mit false auf deselektiert (Kreis ohne Punkt) gesetzt werden.

Die Klasse JRadioButtonMenuItem stellt außerdem entsprechende setter- bzw. getter-Methoden zur Verfügung: Über die Methode void setSelected(boolean b) wird der entsprechende Status gesetzt und mit  boolean isSelected() wird der Status des Radiobuttons abgefragt. Ansonsten ist ein JRadioButtonMenuItem genauso zu verwenden wie ein JMenuItem.