Mercurial > hg > jslab
diff examples/gui/swing/MenuLookDemo.java @ 1:5df24c91468d
Oh my what a mess.
author | samer |
---|---|
date | Fri, 05 Apr 2019 16:26:00 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/gui/swing/MenuLookDemo.java Fri Apr 05 16:26:00 2019 +0100 @@ -0,0 +1,128 @@ +import java.awt.*; +import java.awt.event.*; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JRadioButtonMenuItem; +import javax.swing.ButtonGroup; +import javax.swing.JMenuBar; +import javax.swing.KeyStroke; +import javax.swing.ImageIcon; + +import javax.swing.JTextArea; +import javax.swing.JScrollPane; +import javax.swing.JFrame; + +/* + * This class exists solely to show you what menus look like. + * It has no menu-related event handling. + */ +public class MenuLookDemo extends JFrame { + JTextArea output; + JScrollPane scrollPane; + + public MenuLookDemo() { + JMenuBar menuBar; + JMenu menu, submenu; + JMenuItem menuItem; + JCheckBoxMenuItem cbMenuItem; + JRadioButtonMenuItem rbMenuItem; + + addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent e) { + System.exit(0); + } + }); + + //Add regular components to the window, using the default BorderLayout. + Container contentPane = getContentPane(); + output = new JTextArea(5, 30); + output.setEditable(false); + scrollPane = new JScrollPane(output); + contentPane.add(scrollPane, BorderLayout.CENTER); + + //Create the menu bar. + menuBar = new JMenuBar(); + setJMenuBar(menuBar); + + //Build the first menu. + menu = new JMenu("A Menu"); + menu.setMnemonic(KeyEvent.VK_A); + menu.getAccessibleContext().setAccessibleDescription( + "The only menu in this program that has menu items"); + menuBar.add(menu); + + //a group of JMenuItems + menuItem = new JMenuItem("A text-only menu item", + KeyEvent.VK_T); + //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead + menuItem.setAccelerator(KeyStroke.getKeyStroke( + KeyEvent.VK_1, ActionEvent.ALT_MASK)); + menuItem.getAccessibleContext().setAccessibleDescription( + "This doesn't really do anything"); + menu.add(menuItem); + + menuItem = new JMenuItem("Both text and icon", + new ImageIcon("images/middle.gif")); + menuItem.setMnemonic(KeyEvent.VK_B); + menu.add(menuItem); + + menuItem = new JMenuItem(new ImageIcon("images/middle.gif")); + menuItem.setMnemonic(KeyEvent.VK_D); + menu.add(menuItem); + + //a group of radio button menu items + menu.addSeparator(); + ButtonGroup group = new ButtonGroup(); + + rbMenuItem = new JRadioButtonMenuItem("A radio button menu item"); + rbMenuItem.setSelected(true); + rbMenuItem.setMnemonic(KeyEvent.VK_R); + group.add(rbMenuItem); + menu.add(rbMenuItem); + + rbMenuItem = new JRadioButtonMenuItem("Another one"); + rbMenuItem.setMnemonic(KeyEvent.VK_O); + group.add(rbMenuItem); + menu.add(rbMenuItem); + + //a group of check box menu items + menu.addSeparator(); + cbMenuItem = new JCheckBoxMenuItem("A check box menu item"); + cbMenuItem.setMnemonic(KeyEvent.VK_C); + menu.add(cbMenuItem); + + cbMenuItem = new JCheckBoxMenuItem("Another one"); + cbMenuItem.setMnemonic(KeyEvent.VK_H); + menu.add(cbMenuItem); + + //a submenu + menu.addSeparator(); + submenu = new JMenu("A submenu"); + submenu.setMnemonic(KeyEvent.VK_S); + + menuItem = new JMenuItem("An item in the submenu"); + menuItem.setAccelerator(KeyStroke.getKeyStroke( + KeyEvent.VK_2, ActionEvent.ALT_MASK)); + submenu.add(menuItem); + + menuItem = new JMenuItem("Another item"); + submenu.add(menuItem); + menu.add(submenu); + + //Build second menu in the menu bar. + menu = new JMenu("Another Menu"); + menu.setMnemonic(KeyEvent.VK_N); + menu.getAccessibleContext().setAccessibleDescription( + "This menu does nothing"); + menuBar.add(menu); + } + + public static void main(String[] args) { + MenuLookDemo window = new MenuLookDemo(); + + window.setTitle("MenuLookDemo"); + window.setSize(450, 260); + window.setVisible(true); + } +}