Literatur

JCheckBoxMenuItem

Die Klasse JCheckBoxMenuItem ist eine Kindsklasse von der im vorherigen Kapitel vorgestellten Klasse JMenuItem. Wie der Name schon erahnen lässt, unterscheidet sie sich von einem normalen Menüeintrag darin, dass dem Eintrag eine Checkbox (engl. für Auswahlkästchen) vorangestellt ist. Checkboxen sind Kästchen, in denen ein Haken erscheint bzw. entfernt wird, wenn man sie anklickt. Sie dürften Ihnen von Internetseiten und den meisten Programmen bekannt sein. Oft werden Sie eingesetzt, wenn es um Ja/Nein-Fragen geht (z.B. Bestätigung von AGB's in Onlineshops). Auch Menüeinträge, die mit einer Checkbox versehen sind, dürften Sie bereits kennen. Im Firefox-Browser finden Sie solche z.B. in der Menüleiste unter "Ansicht". Über die Kästchen können Sie z.B. die Statusleiste des Browsers ein- oder ausblenden.

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

// 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.border.Border;
import javax.swing.border.LineBorder;
 
public class JCheckBoxMenuItemBeispiel
{
    // 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);
        // 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 wir das JMenu um ein JMenuItem erweitert haben, haben wir nun anschließend ein JCheckBoxMenuItem erstellt und ebenfalls dem Menü hinzugefügt. Bei der Ausführung des Java-Quellcodes erhalten wir nun folgendes Bild:

Screenshot unseres JCheckBoxMenuItems aus unserem Java Tutorial

Sämtliche Konstruktoren sind von der Oberklasse JMenuItem übernommen worden. Es gibt aber zwei zusätzliche Konstruktoren, mittels derer man den Status der Checkbox beim Anlegen des JCheckBoxMenuItem-Objektes direkt festlegen kann:

JCheckBoxMenuItem(String text, boolean b)
JCheckBoxMenuItem(String text, Icon icon, boolean b) 

Über den booleschen Parameter b kann die Checkbox mit dem Wert true auf selektiert (Häkchen vorhanden) bzw. mit  false auf deselektiert (kein Häkchen) gesetzt werden.

Hinzugekommen sind außerdem entsprechende getter- und setter-Methode für die Checkbox. Mit der Methode void setState(boolean b) wird der entsprechende Status gesetzt und mit der Methode boolean getState() wird der Status der Checkbox abgefragt. Ansonsten kann ein JCheckBoxMenuItem genauso verwendet werden wie ein JMenuItem.