package javacodebook.gui.menu; import javax.swing.*; import java.awt.*; /** * * In diesem Beispiel wird ein JFrame mit einer MenuLeiste ausgestattet */ public class MenuJFrame extends JFrame { private Container content = null; /** * Menuleiste */ private JMenuBar mb = new JMenuBar(); /** * Hauptmenupunkte in Leiste, können Untermenus besitzen */ private JMenu file = new JMenu("Datei"); private JMenu edit = new JMenu("Bearbeiten"); private JMenu help = new JMenu("Hilfe"); /** * Menupunkt eines Menus, falls vom Typ "JMenu", wie bei newGeneral, * und nicht JMenuItem können weitere Untermenus hinzugefügt werden. */ private JMenu newGeneral = new JMenu("Neu"); private JMenuItem newProject = new JMenuItem("Project"); private JMenuItem newFile = new JMenuItem("File"); private JMenuItem save = new JMenuItem("Speichern"); private JMenuItem print = new JMenuItem("Drucken"); private JMenuItem exit = new JMenuItem("Exit"); private JMenuItem undo = new JMenuItem("Rückgängig"); private JMenuItem copy = new JMenuItem("Kopieren"); private JMenuItem paste = new JMenuItem("Einfügen"); private JMenuItem helpItem = new JMenuItem("Hilfe"); private JMenuItem info = new JMenuItem("Info"); /** * Konstruktor von MenuJFrame. */ public MenuJFrame(String title) { super(title); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); content = this.getContentPane(); // Die (noch leere) Menuleiste wird eingebaut this.setJMenuBar(mb); // Menuleiste wird mit Hauptmenupunkten bestückt mb.add(file); mb.add(edit); mb.add(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 ausgeklapptem Menu file.addSeparator(); file.add(exit); edit.add(undo); edit.add(copy); edit.add(paste); help.add(helpItem); help.add(info); } }