package javacodebook.gui.menu; import java.awt.*; import java.awt.event.*; /** * * In diesem Beispiel wird das Frame mit einer Menuleiste * ausgestattet. * */ public class MenuFrame extends Frame { /** * Menuleiste des Frames */ private MenuBar mb = new MenuBar(); /** * Hauptmenupunkte in Leiste, können Untermenus besitzen */ private Menu file = new Menu("Datei"); private Menu edit = new Menu("Bearbeiten"); private Menu help = new Menu("Hilfe"); /** * Menupunkt eines Menus, falls vom Typ "Menu", wie bei newGeneral, * und nicht MenuItem können weitere Untermenus hinzugefügt werden */ private Menu newGeneral = new Menu("Neu"); private MenuItem newProject= new MenuItem("Project"); private MenuItem newFile = new MenuItem("File"); private MenuItem save = new MenuItem("Speichern"); private MenuItem print = new MenuItem("Drucken"); private MenuItem exit = new MenuItem("Exit"); private MenuItem undo = new MenuItem("Rückgängig"); private MenuItem copy = new MenuItem("Kopieren"); private MenuItem paste = new MenuItem("Einfügen"); private MenuItem helpItem = new MenuItem("Hilfe"); private MenuItem info = new MenuItem("Info"); /** * Konstruktor von MenuFrame */ public MenuFrame(String title) { super(title); // Die (noch leere) Menuleiste wird eingebaut this.setMenuBar(mb); // Menuleiste wird mit Hauptmenupunkten bestückt mb.add(file); mb.add(edit); // setHelpmenu() fügt das HelMenu in der MenuLeiste ein. // Existiert schon eins wird dieses überschrieben. mb.setHelpMenu(help); // Hauptmenupunkte können von Hauptmenupunkten besetzt // werden. Dadurch entsteht ein ausfahrbares Untermenu, // welches anschließend belegt werden kann. file.add(newGeneral); newGeneral.add(newProject); newGeneral.add(newFile); // hier wird der Menupunkt direkt ins oberste Hauptmenu // gelegt, es entsteht kein ausfahrbares Untermenu. file.add(save); file.add(print); // ein Seperator ist ein Trennstrich im ausgejklapptem Menu file.addSeparator(); file.add(exit); edit.add(undo); edit.add(copy); edit.add(paste); help.add(helpItem); help.add(info); } }