package MenuTest; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ButtonGroup; import javax.swing.ImageIcon; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JRadioButtonMenuItem; import javax.swing.KeyStroke; /** * Frame cu menu * @author Dan * */ public class MenuFrame extends JFrame { /** * */ private static final long serialVersionUID = 1L; public MenuFrame() { setTitle("MenuTest"); setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); JMenu fileMenu = new JMenu("File"); JMenuItem newItem = fileMenu.add(new TestAction("New")); //Cobinatiile scurte de acces JMenuItem openItem = fileMenu.add(new TestAction("Open")); openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK)); fileMenu.addSeparator(); saveAction = new TestAction("Save"); JMenuItem saveItem = fileMenu.add(saveAction); saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); saveAsAction = new TestAction("Save As"); JMenuItem saveAsItem = fileMenu.add(saveAsAction); fileMenu.addSeparator(); fileMenu.add(new AbstractAction("Exit") { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); //Flaguri si optiuni in Menu readOnlyItem = new JCheckBoxMenuItem("Read-Only"); readOnlyItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean saveOk = !readOnlyItem.isSelected(); saveAction.setEnabled(saveOk); saveAsAction.setEnabled(saveOk); } }); ButtonGroup group = new ButtonGroup(); JRadioButtonMenuItem insertItem = new JRadioButtonMenuItem("Insert"); insertItem.setSelected(true); JRadioButtonMenuItem overTypeItem = new JRadioButtonMenuItem("OverType"); group.add(insertItem); group.add(overTypeItem); //pictograme in menu Action cutAction = new TestAction("Cut"); cutAction.putValue(Action.SMALL_ICON, new ImageIcon("images/cut.gif")); Action copyAction = new TestAction("Copy"); copyAction.putValue(Action.SMALL_ICON, new ImageIcon("images/copy.gif")); Action pasteAction = new TestAction("Paste"); pasteAction.putValue(Action.SMALL_ICON, new ImageIcon("images/paste.gif")); JMenu editMenu = new JMenu("Edit"); editMenu.add(cutAction); editMenu.add(copyAction); editMenu.add(pasteAction); //SubMenu JMenu optionMenu = new JMenu("Options"); optionMenu.add(readOnlyItem); optionMenu.addSeparator(); optionMenu.add(insertItem); optionMenu.add(overTypeItem); editMenu.addSeparator(); editMenu.add(optionMenu); //HotKeys JMenu helpMenu = new JMenu("Help"); helpMenu.setMnemonic('H'); JMenuItem indexItem = new JMenuItem("Index"); indexItem.setMnemonic('I'); helpMenu.add(indexItem); //Hotkey se poate de pus si astfel prin Action Action aboutAction = new TestAction("About"); aboutAction.putValue(Action.MNEMONIC_KEY, new Integer('A')); helpMenu.add(aboutAction); //Adaaugarea menu in partea de sus a Menu; JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(helpMenu); //Popup Up menu popup = new JPopupMenu(); popup.add(cutAction); popup.add(copyAction); popup.add(pasteAction); JPanel panel = new JPanel(); panel.setComponentPopupMenu(popup); add(panel); //Error 4966109 panel.addMouseListener(new MouseAdapter() {}); } public static final int DEFAULT_WIDTH = 300; public static final int DEFAULT_HEIGHT = 200; private Action saveAction; private Action saveAsAction; private JCheckBoxMenuItem readOnlyItem; private JPopupMenu popup; }