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