Eine Menu Bar ist eine Menüleiste für ein Frame. Folgende Abbildung zeigt ein Frame mit einer Menu Bar, welche ein File und ein Edit Menü enthält:
Eine Menu Bar erhält man für ein Frame mit Hilfe der folgende Methode:
IMenuBar createMenuBar();
Falls noch keine Menu Bar existiert, wird eine neue erzeugt und zurückgegeben. Andernfalls wir die zuletzt erzeugte (welche noch nicht disposed wurde) zurückgegeben. Es folgt eine kurze Beschreibung der Menu Bar Methoden:
Mit Hilfe der folgenden Methoden kann das Model gesetzt und ausgelesen werden. Siehe auch Menü und Item Models.
void setModel(IMenuBarModel model); IMenuBarModel getModel();
Mit Hilfe der folgenden Methoden kann ein Main Menu hinzugefügt werden:
IMainMenu addMenu(IMainMenuDescriptor descriptor); IMainMenu addMenu(int index, IMainMenuDescriptor descriptor); IMainMenu addMenu(String name); IMainMenu addMenu(String name, char mnemonic); IMainMenu addMenu(int index, String name);
Die ersten beiden Methoden verwenden einen Descriptor
(BluePrint) zum Hinzufügen. Bei den anderen Methoden handelt
es sich um Convenience Methoden, mit welchen der Menu Name und
Mnemonic direkt angeben werden kann. Wird ein
index
angegeben, wird das Menü an der
entsprechenden Stelle eingefügt, ansonsten am Ende.
Das folgende Beispiel soll die Verwendung verdeutlichen:
1 final IMenuBar menuBar = frame.createMenuBar(); 2 3 final IMainMenu fileMenu = menuBar.addMenu(BPF.mainMenu().setText("File")); 4 final IMainMenu editMenu = menuBar.addMenu(BPF.mainMenu().setText("Edit"));
Mit Hilfe der Convenience Methoden kann man das auch kürzer schreiben:
1 final IMenuBar menuBar = frame.createMenuBar(); 2 3 final IMainMenu fileMenu = menuBar.addMenu("File"); 4 final IMainMenu editMenu = menuBar.addMenu("Edit");
Folgender Aufruf fügt ein Menü zwischen File und Edit ein:
1 final IMainMenu searchMenu = menuBar.addMenu(1, "Search");
Die folgende Abbildung zeigt das Gesamtergebnis:
Ein Menü kann entweder mit Hilfe der folgenden Methoden entfernt werden:
boolean remove(IMenu menu); void remove(final int index); void removeAll();
oder indem auf dem Menü welches entfernt werden soll, die dispose() Methode aufgerufen wird.
Der Aufruf:
menuBar.remove(searchMenu);
hat also den gleichen Effekt wie:
searchMenu.dispose();