JMenuBar, JMenu, JMenuItem

 Die Klassen JMenuBar, JMenu, JMenuItem , erlauben Konfiguration von Menüleisten, Pulldownmenüs und Menülisteneinträge für Fenster die mit JFrame erzeugt wurden.

Im Folgenden werden die wichtigsten Methoden (für den Kontext dieses Kurses) aufgeführt. Die obengenannten Klassen sind sehr viel mächtiger als hier beschrieben. Sie haben zusätzliche Methoden für:

  • Lokalisierung
  • unterschiedliche Arten von Menüeinträgen
  • konfigurierbares Look and Feel
  • Untermenüs
  • markieren von Einträgen
  • Anklicken durch Buchstaben Abkürzungen der Tastatur
  • etc.

Die Klasse JMenuBar

JMenuBar
Methode Beschreibung Geerbt von
Konstruktor: JMenuBar() Erzeugen einer Menüleiste für ein JFrame Fenster -
JMenu add(JMenu c) Hinzufügen eines Menüs zur Leiste -

Die Klasse JMenu

JMenu
Methode Beschreibung Geerbt von
Konstruktor: JMenu() Erzeugen einer Menüspalte am Ende der Menüleiste -
Konstruktor: JMenu(String title) Erzeugen einer Menüspalte mit Titel am Ende der Menüleiste -
JMenuItem add(JMenuItem c) Hinzufügen eines Menüeintrags am Ende des Menüs -

 

Die Klasse JMenuItem

JMenu
Methode Beschreibung Geerbt von
Konstruktor: JMenuItem(String text) Erzeugen eines Menüeintrags mit einem gegebenen Text -
void addActionListener(ActionListener l) Registrieren eines Listeners der aufgerufen wird wenn der Menülisteneintrag geklickt wird java.swingx.AbstractButton
void  setEnabled(boolean) Anzeigen oder ausblenden eines Menülisteneintrags -

Beispiel

... Menüs mit einem einzigen Eintrag :

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;    
import javax.swing.JMenu;  
import javax.swing.JMenuBar;  
import javax.swing.JMenuItem;
... 
JFrame hf = new JFrame();
JMenuBar menueleiste;
JMenu ablageMenue;
JMenuItem beendenMenueEintrag;
menueleiste = new JMenuBar();
ablageMenue = new JMenu("Ablage");
beendenMenueEintrag = new JMenuItem("Beenden");
beendenMenueEintrag.addActionListener(this);
beendenMenueEintrag.setEnabled(true);

ablageMenue.add(beendenMenueEintrag);
menueleiste.add(ablageMenue);

hf.setJMenuBar(menueleiste);
hf.setVisible(true);

Einen einfachen Actionlistener kann man als Klasse mit der folgenden Methode implementieren:


    public void actionPerformed(ActionEvent e) {
JMenuItem source = (JMenuItem) (e.getSource());
                if (source == beendenMenueEintrag)
                    System.exit(0);
}

beendenMenueEintrag muss hier auf das gleiche Objekt wie bei der obigen Erzeugung der Menüleiste zeigen. Der Actionlistener beendet die Anwendung bei Aufruf!

Hierdurch ergibt sich das folgende Fenster:

Anmerkung: Das hier gezeigt Fenster benutzt das Standard "Look and Feel" von MacOS. Die Rahmendekoration sieht bei anderen Betriebssystemen bzw. anderen "Look and Feel" Themen anders aus. Der oben gezeigt Code ist jedoch plattformneutral.