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 adds event handling to MenuLookDemo.
 */
public class MenuDemo extends JFrame 
                      implements ActionListener, ItemListener {
    JTextArea output;
    JScrollPane scrollPane;
    String newline = "\n";    public MenuDemo() {
        JMenuBar menuBar;
        JMenu menu, submenu;
        JMenuItem menuItem;
        JRadioButtonMenuItem rbMenuItem;
        JCheckBoxMenuItem cbMenuItem;        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");
        menuItem.addActionListener(this);
        menu.add(menuItem);        menuItem = new JMenuItem("Both text and icon", 
                                 new ImageIcon("images/middle.gif"));
        menuItem.setMnemonic(KeyEvent.VK_B);
        menuItem.addActionListener(this);
        menu.add(menuItem);        menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
        menuItem.setMnemonic(KeyEvent.VK_D);
        menuItem.addActionListener(this);
        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);
        rbMenuItem.addActionListener(this);
        menu.add(rbMenuItem);
        rbMenuItem = new JRadioButtonMenuItem("Another one");
        rbMenuItem.setMnemonic(KeyEvent.VK_O);
        group.add(rbMenuItem);
        rbMenuItem.addActionListener(this);
        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);
        cbMenuItem.addItemListener(this);
        menu.add(cbMenuItem);
        cbMenuItem = new JCheckBoxMenuItem("Another one");
        cbMenuItem.setMnemonic(KeyEvent.VK_H);
        cbMenuItem.addItemListener(this);
        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));
        menuItem.addActionListener(this);
        submenu.add(menuItem);        menuItem = new JMenuItem("Another item");
        menuItem.addActionListener(this);
        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 void actionPerformed(ActionEvent e) {
        JMenuItem source = (JMenuItem)(e.getSource());
        String s = "Action event detected."
                   + newline
                   + "    Event source: " + source.getText()
                   + " (an instance of " + getClassName(source) + ")";
        output.append(s + newline);
    }    public void itemStateChanged(ItemEvent e) {
        JMenuItem source = (JMenuItem)(e.getSource());
        String s = "Item event detected."
                   + newline
                   + "    Event source: " + source.getText()
                   + " (an instance of " + getClassName(source) + ")"
                   + newline
                   + "    New state: " 
                   + ((e.getStateChange() == ItemEvent.SELECTED) ?
                     "selected":"unselected");
        output.append(s + newline);
    }    // Returns just the class name -- no package info.
    protected String getClassName(Object o) {
        String classString = o.getClass().getName();
        int dotIndex = classString.lastIndexOf(".");
        return classString.substring(dotIndex+1);
    }    public static void main(String[] args) {
        MenuDemo window = new MenuDemo();        window.setTitle("MenuDemo");
        window.setSize(450, 260);
        window.setVisible(true);
    }
}

解决方案 »

  1.   

    Ok!!!Ivan,Think u very much.
    我保证给分;
    能再帮我个忙
    如果只倒入 java.awt.*
    不用Swing在jdk1.3下可否?
      

  2.   

    不大明白你的意思,什么叫“只倒入 java.awt.*”For jdk1.2的,仅用了awt,不过很难看,将就吧   :)import java.awt.*;
    import java.awt.event.*;/**
     * Title:        
     * Description:  
     * Copyright:    Copyright (c) 2001
     * Company:      
     * @author 
     * @version 1.0
     */public class Frame2 extends Frame {
      MenuBar menuBar1 = new MenuBar();
      Menu menu1 = new Menu();
      MenuItem menuItem1 = new MenuItem();
      Menu menu2 = new Menu();
      MenuItem menuItem2 = new MenuItem();  public Frame2() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        Frame2 frame2 = new Frame2();
        frame2.show();
        frame2.setBounds(0, 0, 640, 480);
      }  
      private void jbInit() throws Exception {
        this.setMenuBar(menuBar1);
        menu1.setLabel("File");
        menuItem1.setLabel("Save");
        menuItem1.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            menuItem1_actionPerformed(e);
          }
        });
        menuItem2.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            menuItem2_actionPerformed(e);
          }
        });    
        menu2.setLabel("Help");
        menuItem2.setLabel("Help");
        menuBar1.add(menu1);
        menuBar1.add(menu2);
        menu1.add(menuItem1);
        menu2.add(menuItem2);
      }  void menuItem1_actionPerformed(ActionEvent e) {
        System.out.print("Save clicked");
      }
      void menuItem2_actionPerformed(ActionEvent e) {
        System.out.print("Help clicked");
      }  
    }
      

  3.   

    kalven, 我推荐你去买随便一本什么java入门的书看一看,应该都有这样子的代码片段吧。
    如果你什么问题都去问的话,真的要有足够的时间与分数才行呀。