JMenu
Die Java-Klasse javax.swing.JMenu dient als Container für die eigentlichen Menüpunkte. Ein JMenu ist z.B. vergleichbar mit dem Menüeintrag "Ansicht", welchen Sie z.B. in der oberen Menüleiste von diversen Browsern oder Textverarbeitungsprogrammen finden. Wenn Sie das Menü "Ansicht" auswählen, sehen Sie die eigentlichen Menüpunkte, welche man in Java mit der Klasse JMenuItem realisieren könnte.
Objekte der Klasse JMenu können einer JMenuBar (siehe vorheriges Kapitel) oder einem JPopupMenu hinzugefügt werden. Die Menüs können auch geschachtelt werden. Wenn Sie z.B. im Firefox-Browser im Menü "Ansicht" den Menüpunkt "Symbolleisten" selektieren, öffnet sich ein weiteres Menü, in dem Sie wieder die Auswahl zwischen verschiedenen Menüpunkten haben.
Schauen wir uns dazu ein Beispiel an:
// Import-Anweisungen import java.awt.Color; import javax.swing.JDialog; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.border.Border; import javax.swing.border.LineBorder; public class JMenu_Beispiel { 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"); // 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); } }
Wie Sie sehen, haben wir das Beispiel unseres vorherigen Kapitels einfach erweitert. Wir erzeugen nun, nachdem wir unsere Border gesetzt haben, ein Objekt der Klasse JMenu, deren Konstruktor wir direkt den Titel übergeben können. Anschließend fügen wir das JMenu-Objekt der JMenuBar hinzu. Wenn wir obigen Java-Quellcode ausführen, erhalten wir nun folgenden Dialog:
An dem obigen Screenshot können Sie nun erkennen, dass unsere Border nicht mehr verwendet werden müsste, um die JMenuBar sehen, da diese jetzt über ein Menü verfügt, welches allerdings noch über keine Menüpunkte verfügt.
Die Klasse JMenu besitzt zahlreiche Methoden, über die wir in der folgenden Tabelle einen kurzen Überblick geben wollen:
Methode | Beschreibung |
---|---|
JMenuItem add(JMenuItem menuItem) | Diese Methode fügt dem JMenu ein Objekt der Klasse JMenuItem hinzu, wodurch das Menü um einen Menüeintrag erweitert wird. |
JMenuItem add(String s) | Diese Methode erzeugt ein Objekt der Klasse JMenuItem mit dem Namen des übergebenen Strings und fügt es als Menüpunkt dem aufrufenden JMenu-Objekt hinzu. |
void addSeparator() | Diese Methode fügt ein Objekt der Klasse JSeperator als Trennlinie einem JMenu hinzu. |
JMenuItem insert(JMenuItem mi, int pos) | Diese Methode fügt ein Objekt der Klasse JMenuItem an der Position pos als Menüpunkt einem JMenu hinzu. |
void insert(String s, int pos) | Diese Methode erzeugt ein Objekt der Klasse JMenuItem mit dem Namen des übergebenen Strings und fügt es dem JMenu an der Position pos als Menüpunkt hinzu. |
void insertSeparator(int index) | Diese Methode fügt ein Objekt der Klasse JSeperator als Trennlinie an der Position pos einem JMenu hinzu. |
boolean isTopLevelMenu( | Diese Methode überprüft, ob das JMenu ein direktes "Kind" einer Menübar ist. Dies ist nicht möglich, wenn diese JMenu einem JPopupMenu hinzugefügt wurde. |
void remove(int pos) | Diese Methode entfernt eine Komponente an der übergebenen Position pos. |
void remove(JMenuItem item) | Diese Methode entfernt das übergebene Objekt der Klasse JMenuItem aus dem JMenu. |
void removeAll() | Diese Methode entfernt alle Objekte aus dem JMenu. |
void setMenuLocation(int x, int y) | Diese Methode setzt die Position einer Popup-Komponente auf die Koordinaten x und y. |
Diese Methoden sollten ausreichend sein, damit Sie mit einem Menü umgehen können.
Wie man unser Menü nun mit Menüpunkten (JMenuItem) bestückt, erfahren Sie im folgenden Kapitel unseres Java-Tutorials.