Literatur

JMenuItem

Die einzelnen Menüpunkte eines JMenus werden durch Objekte der Klasse javax.swing.JMenuItem realisiert. Ein Beispiel für einen Menüpunkt ist z.B. der Eintrag "Drucken" im Menü "Datei" Ihres Browsers.  

Der Unterschied zu einem JMenu besteht darin, dass bei der Betätigung eines JMenuItems meistens etwas passiert, wie z.B. dass sich ein Dialog öffnet, das Programm beendet wird oder sich die Ansicht verändert. Dies ist abhängig von der Aktion, die diesem Menüpunkt zugeordnet ist.

Ein JMenuItem kann einem JMenu oder einem JPopupMenu hinzugefügt werden.

Schauen wir uns nun einige Konstruktoren der Klasse JMenuItem an:

Konstruktor Beschreibung
JMenuItem(String text) Hier wird der anzuzeigende Text übergeben.
JMenuItem(String text, Icon icon) Dem Konstruktor werden ein Text und ein Icon für den Menüeintrag übergeben. Hierbei ist zu beachten, dass icon nicht nur der Pfad zu einem Icon ist, sondern ein Objekt der Klasse Icon, welches die Bilddaten enthält.
JMenuItem(String text, int mnemonic) Hier wird der anzuzeigende Text übergeben und ein sogenanntes Mnemonic gesetzt. Ein Mnemonic ist eine Tastenkombination, über die Sie ebenfalls den Menüeintrag auswählen können. Z.B. ist in vielen Programmen das "D" das Mnemonic für das Menü "Datei". Sie können also das Dateimenü über die Tastenkombination "Alt+D" aufklappen.
Da mnemonic hier ein Integer-Wert ist, handelt es sich um den KeyCode des jeweiligen Zeichens der Tastatur, welches Sie verwenden wollen. Diese finden Sie alle unter der Klasse KeyEvent als Konstante.

Wir wollen nun unser vorheriges Beispiel aus dem Kapitel JMenu erweitern, indem wir ein JMenuItem erstellen und dem JMenu hinzufügen:

// 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.border.Border;
import javax.swing.border.LineBorder;
 
public class JMenuItemBeispiel
{
    // 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 auf 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);
        // 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);
    }
}

In dem obigen Beispiel erzeugen wir ein Objekt der Klasse JMenuItem. Hierzu benutzen wir den ersten Konstruktor unserer Tabelle mit den Konstruktoren, wir übergeben also direkt den Text des Menüeintrages.

Wenn Sie diesen Quellcode nun ausführen, wird mit einem Klick auf das Menü "Ich bin ein JMenu" der Eintrag "Ich bin das JMenuItem" angezeigt:

Ein JMenuItem unterhalb eines JMenu

Wie man programmiert, dass eine bestimmte Aktion ausgeführt wird, wenn ein Menüeintrag gewählt wird, erläutern wir in einem späteren Kapitel über Event-Handling.

Wir wollen in der folgenden Tabelle noch einen kurzen Überblick über einige wichtige Methoden der Klasse JMenuItem geben. Alle Methoden hier aufzuführen und zu erklären macht wenig Sinn, da viele Methoden nur selten verwendet werden. 

Methode Beschreibung
public void addActionListener(ActionListener l) Diese Methode wurde von der Klasse AbstractButton geerbt. Die meisten Bedienelemente besitzen diese Methode. Mit einem ActionListener können bestimmte Ereignisse, wie z.B. die Betätigung des Menüpunktes, erkannt werden, so dass das Programm entsprechend darauf reagieren kann (z.B. Öffnen eines Dialogs). Eine nähere Beschreibung von Events und ActionListener gibt es in dem Kapitel Event-Handling.
public void setText(String text) Mit dieser Methode wird der anzuzeigende Text gesetzt. Sie ist ebenfalls von der Klasse AbstractButton vererbt worden. Auch diese Methode ist bei vielen Bedienelementen vorhanden. Zu dieser setter-Methode gibt es auch eine entsprechende getter-Methode.
protected void init(String text, Icon icon) Mit dieser Methode kann das Objekt der Klasse JMenuItem mit einem neuen Text und Icon initialisiert werden.
void setEnabled(boolean b) Viele Bedienelemente besitzen ebenfalls die setEnabled-Methode. Mit dieser Methode kann man die Betätigung der Schaltfäche zulassen, indem man true übergibt, oder aber für jegliche Benutzung sperren, in dem man false übergibt.

Wie Sie das Betätigen eines Menüpunktes mit einer Funktionalität verknüpfen, sehen Sie im zweiten Abschnitt des Kapitels ActionListener.