Axel Rogat
Objektorientiertes Programmieren mit C++ und JAVA
 
33.4: Listen Kapitel 33 Startseite 
 
  33.5 Menüs  
 

Menüs werden durch die Klasse Menu dargestellt. Sie können nur in Frames oder (als Untermenüs) in andere Menüs eingebaut werden. Einzelne Menüpunkte heißen MenuItem, die gesamte Menüleiste MenuBar.

Es werden üblicherweise einzelne MenuItems erzeugt und mit add an ein Menu angefügt. Dann werden die Menu-Objekte mit add() an ein MenuBar-Objekt gekoppelt. Das MenuBar-Objekt schließlich wird mit setMenuBar in den Frame eingeklinkt.

Es gibt eine Abart namens Choice, die nicht an eine Menüleiste gebunden ist. Es ist immer genau ein Menüpunkt ausgewählt. Choice erscheint als eine Art Knopf, in der die aktuelle Auswahl angezeigt wird, und verwandelt sich beim Anklicken in ein Menü.

Außerdem gibt es PopUp-Menüs, die automatisch erscheinen, wenn eine angegebene Maustaste (meistens die rechte) irgendwo über der Komponente gedrückt wird. Danach verhalten sie sich wie normale Menüs.

Beispiel: Wir bauen unser Event-Beispiel von Buttons auf Menüs um. Im Menu "File" gibt es nur den Menüpunkt "Quit", im Menü "Colors" die vier Farben.

class ClickMeFrame extends Frame { static String mstring[]={ "Quit","Black","Red","Green","Blue" }; Color colors[]=new Color[] { Color.black, Color.red, Color.green, Color.blue }; int numcol; static int count=0; void CloseMe() { dispose(); if (--count==0) System.exit(0); } ClickMeFrame(int x, int y, int w, int h) { super("Click me!"); setLayout(new FlowLayout()); addWindowListener ( new WindowAdapter() { public void windowClosing(WindowEvent e) { CloseMe(); } } ); MenuItem[] mitems=new MenuItem[5]; for (int i=0;i<=4;++i) { final int icopy=i; mitems[i]=new MenuItem(mstring[i]); mitems[i].addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent e) { if (icopy==0) CloseMe(); else numcol=icopy-1; } } ); } MenuBar mbar=new MenuBar(); Menu menu=new Menu("File"); menu.add(mitems[0]); mbar.add(menu); menu=new Menu("Colors"); for (int i=1;i<=4;++i) menu.add(mitems[i]); mbar.add(menu); setMenuBar(mbar); // MouseListener und Rest unverändert // ... } }
 
33.4: Listen Startseite 
 
© 1998 Axel Rogat