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