Menüs

Anfang  Zurück  Vor

Letzte Änderung 12.12.2011

 

Menüs setzen sich aus einer Menüzeile (XdevMenuBar) und den einzelnen, nach unten aufklappenden Menüs zusammen. Die XdevMenuBar wird beim Einfügen auf die Arbeitsfläche immer automatisch oben am Fenster fest angedockt. Für die Konstruktion der einzelnen Menüs stellt XDEV 5 einen Menü-Assistenten zur Verfügung, den Sie über das Menü Ansicht > Fenster > Menüs aufrufen und beliebig in die XDEV 5 Oberfläche integrieren können. Die mit dem Assistenten erstellen Menüs können Sie anschließend per Drag&Drop in die MenuBar einfügen. Die Reihenfolge lässt sich ebenfalls per Drag&Drop jederzeit  ändern. Die einzelnen Menü-Einträge verhalten sich ähnlich wie Buttons. Die jeweils hinterlegte Aktion wird beim Ereignis actionPerformed( ), sprich per Mausklick ausgeführt.

 

 

Menüs anlegen

 

1.Wählen Sie im Menü Ansicht > Fenster > Menüs, um den Menü-Assistenten aufzurufen.

2.Klicken Sie bei Menüs auf new, um ein neues Menü anzulegen. Klicken Sie das neue Menü mit Doppelklick an und benennen Sie es um.

3.Weisen Sie dem Menü nun Menü-Einträge (Items) zu. Fügen Sie dazu entsprechende Menü-Einträge bei Menü-Palette per Drag&Drop in den Bereich bei Menü-Inhalt ein, klicken Sie diese mit Doppelklick an und benennen Sie diese um.

4.Weisen Sie sämtlichen Menüpunkten ein Icon zu. Ziehen Sie dazu jeweils eine Bild-Datei aus dem XDEV 5 Medienkatalog oder aus Ihrem Dateimanager per Drag&Drop auf die entsprechenden Menüpunkte bei Menü-Inhalt.

5.Legen Sie weitere Menüs an.

clip0371

 

 

Menüleiste konstruieren

 

6.Fügen Sie die Komponente XdevMenuBar in die Arbeitsfläche ein.

7.Ziehen Sie die im Assistenten angelegten Menüs per Drag&Drop auf die MenuBar.

clip0140

 

Menü-Reihenfolge - Klicken Sie ein Menü in der MenuBar an und ziehen Sie dieses an eine andere Position in der MenuBar.

Menü aus MenuBar entfernen - Klicken Sie im Menü-Assistenten das Menü an, das Sie aus der MenuBar entfernen möchten und klicken Sie auf clip0283.

Trennlinien - Klicken Sie bei Menü-Palette auf XdevMenuSeparator, um in ein Menü eine Trennlinie einzufügen.

 

 

Untermenüs konstruieren

 

8.Legen Sie ein neues Menü an und benennen Sie dieses um in Untermenü.

9.Klicken Sie ein Menü an, dem Sie das Untermenü zuweisen möchten.

10.Fügen Sie das Untermenü nun per Drag&Drop wie einen gewöhnlichen Menüpunkt bei Menü-Inhalt  ein.

clip0230

 

Untermenü aus Menü entfernen - Klicken Sie bei Menüs das Untermenü an und klicken Sie auf clip0283.

Untermenü Position im Menü ändern - Verschieben Sie bei Menü-Inhalt das Untermenü mit der Maus an eine andere Position.

 

 

Kontextmenüs konstruieren

 

Jedes Menü lässt sich auch als Kontextmenü verwenden. Dazu müssen Sie lediglich ein beliebiges Menü per Drag&Drop auf eine GUI-Komponente ziehen, bei der das Menü als Kontextmenü angezeigt werden soll. In den Eigenschaften der GUI-Komponente wird das Kontextmenü dann bei Popup-Menü als Referenz hinterlegt.

 

11. Fügen Sie eine GUI-Komponenten in die Arbeitsfläche ein, z.B. eine XdevTable.

12. Ziehen Sie ein beliebiges Menü per Drag&Drop auf die Table, um dieses als Kontextmenü zuzuweisen.

clip0232

Das Menü wird in den Eigenschaften der GUI.-Komponente hinterlegt.

 

clip0233

Zur Laufzeit wird das Kontextmenü durch Rechtsklick bei der jeweiligen GUI-Komponente angezeigt.

 

 

Ereignisse zuweisen

 

Bei der Auswahl eines Menüeintrages direkt im GUI-Builder wird automatisch ein actionPerformed Event generiert.

 

1.Wählen Sie direkt im GUI-Builder in der MenuBar den Menüpunkt aus, für den Sie eine Aktion hinterlegen möchten, z.B. Datei > Neu.

2.Geben Sie im automatisch generierten Event-Handler den gewünschten Aktionscode ein.

@EventHandlerDelegate void menuItem_actionPerformed(ActionEvent event) 

{

  // Aktion                

}

 

 

Über das Fenster Ereignisse lassen sich auch andere Ereignisse zuweisen und bei Bedarf wieder entfernen. Der Menüeintrag muss dazu jedoch im Fenster Übersicht selektiert werden.

 

clip0284

 

 

 

Kontextmenüs programmatisch zuweisen

 

Ein Kontextmenü wird immer bei einer bestimmten GUI-Komponente angezeigt. Bei dieser müssen Sie demnach ein mousePressed( ) Ereignis abfangen. Mit Hilfe der Menü-Methode show( ) können Sie dann das Kontextmenü anzeigen.

 

1.Legen Sie ein neues Menü an, das Sie als Kontextmenü verwenden möchten. Benennen Sie dieses in den Eigenschaften > Name um in kontextmenu.

2.Fügen Sie eine GUI-Komponente in die Arbeitsfläche ein, bei der das Menü als Kontextmenü angezeigt werden soll, z.B. einen Button.

3.Klicken Sie im Quickinfo auf Ereignisse > Maus > mousePressed.

4.Rufen Sie nun das Menü mit der Menu-Methode show( ) auf.

@EventHandlerDelegate void button_mousePressed(MouseEvent event) 

{

   menu.show(event);  

}

 

 

Das Ereignis mousePressed( ) unterscheidet nicht zwischen Links- und Rechtsklick. D.h., wenn das Kontextmenü nur bei Rechtsklick angezeigt werden soll, müssen Sie selber prüfen, ob es sich bei dem Mausklick um einen Rechtsklick handelt. Dafür stellt die Klasse SwingUtilities die Methode isRightMouseButton( ) zur Verfügung. Wenn es sich um einen Rechtsklick handelt, liefert die Methode true zurück, ansonsten false.

 

if(SwingUtilities.isRightMouseButton(event))

{

   menu.show(event);            

}

 

Wichtigste Methoden

 

show

 

Diese Methode zeigt das Menü als Popupmenü auf der Oberfläche an.

 

Wichtigste Überladungen:

show(MouseEvent event)

event - Das MouseEvent, welches die Position des anzuzeigenden Menüs bestimmt.

// Öffnet das Menü "menu" als Kontextmenü and der aktuellen Mausposition
menu.show(event);

 

show(Component invoker, int x, int y)

invoker - Die Komponente, in deren Platz das Menü angezeigt werden soll.

x - Die X-Koordinate in der übergebenen Komponente, wo das Menü angezeigt werden soll.

y - Die y-Koordinate in der übergebenen Komponente, wo das Menü angezeigt werden soll.

// Öffnet das Menü "menu" als Kontextmenü in der Mitte der Komponente "container"
menu.show(container,container.getWidth()/2, container.getHeight()/2);