swing:menus_checkboxes_radio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

swing:menus_checkboxes_radio [2015/05/11 06:39]
gthanos created
swing:menus_checkboxes_radio [2016/02/26 11:15]
Line 1: Line 1:
-====== CheckBox Menu Items & RadioButton Menu Items ====== 
- 
-Σε αναλογία με τα check box buttons και radio buttons μπορείτε να ορίσετε σε ένα μενού //CheckBox Menu Items// και //​RadioButton Menu Items//. Δείτε το παρακάτω παράδειγμα χρήσης ενός τέτοιου μενού από το site της Oracle. 
- 
-<code java MenuLookDemo.java>​ 
-package components; 
- 
-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.JPanel;​ 
-import javax.swing.JTextArea;​ 
-import javax.swing.JScrollPane;​ 
-import javax.swing.JFrame;​ 
- 
-/* MenuLookDemo.java requires images/​middle.gif. */ 
- 
-/* 
- * This class exists solely to show you what menus look like. 
- * It has no menu-related event handling. 
- */ 
-public class MenuLookDemo { 
-  JTextArea output; 
-  JScrollPane scrollPane; 
- 
-  public JMenuBar createMenuBar() { 
-    JMenuBar menuBar; 
-    JMenu menu, submenu; 
-    JMenuItem menuItem; 
-    JRadioButtonMenuItem rbMenuItem; 
-    JCheckBoxMenuItem cbMenuItem; 
- 
-    //Create the menu bar. 
-    menuBar = new JMenuBar(); 
- 
-    //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);​ 
- 
-    ImageIcon icon = createImageIcon("​images/​middle.gif"​);​ 
-    menuItem = new JMenuItem("​Both text and icon", icon); 
-    menuItem.setMnemonic(KeyEvent.VK_B);​ 
-    menu.add(menuItem);​ 
- 
-    menuItem = new JMenuItem(icon);​ 
-    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);​ 
- 
-    return menuBar; 
-  } 
- 
-  public Container createContentPane() { 
-    //Create the content-pane-to-be. 
-    JPanel contentPane = new JPanel(new BorderLayout());​ 
-    contentPane.setOpaque(true);​ 
- 
-    //Create a scrolled text area. 
-    output = new JTextArea(5,​ 30); 
-    output.setEditable(false);​ 
-    scrollPane = new JScrollPane(output);​ 
- 
-    //Add the text area to the content pane. 
-    contentPane.add(scrollPane,​ BorderLayout.CENTER);​ 
- 
-    return contentPane;​ 
-  } 
- 
-  /** Returns an ImageIcon, or null if the path was invalid. */ 
-  protected static ImageIcon createImageIcon(String path) { 
-    java.net.URL imgURL = MenuLookDemo.class.getResource(path);​ 
-    if (imgURL != null) { 
-      return new ImageIcon(imgURL);​ 
-    } else { 
-      System.err.println("​Couldn'​t find file: " + path); 
-      return null; 
-    } 
-  } 
- 
-  /** 
-   * Create the GUI and show it.  For thread safety, 
-   * this method should be invoked from the 
-   * event-dispatching thread. 
-   */ 
-  private static void createAndShowGUI() { 
-    //Create and set up the window. 
-    JFrame frame = new JFrame("​MenuLookDemo"​);​ 
-    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);​ 
- 
-    //Create and set up the content pane. 
-    MenuLookDemo demo = new MenuLookDemo();​ 
-    frame.setJMenuBar(demo.createMenuBar());​ 
-    frame.setContentPane(demo.createContentPane());​ 
- 
-    //Display the window. 
-    frame.setSize(450,​ 260); 
-    frame.setVisible(true);​ 
-  } 
- 
-  public static void main(String[] args) { 
-    //Schedule a job for the event-dispatching thread: 
-    //creating and showing this application'​s GUI. 
-    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
-      public void run() { 
-        createAndShowGUI();​ 
-      } 
-    }); 
-  } 
-} 
-</​code>​ 
  
swing/menus_checkboxes_radio.txt · Last modified: 2016/02/26 11:15 (external edit)