import java.awt.*;
import java.awt.event.*;
public class TestMenuBar {
MenuBar menubar=new MenuBar();
Menu file=new Menu("File");
Menu edit=new Menu("Edit");
Menu tools=new Menu("Tools");
Menu viewer=new Menu("Viewer");
Menu help=new Menu("Help");
MenuItem newItem=new MenuItem("new");
MenuItem openItem=new MenuItem("Open");
MenuItem saveItem=new MenuItem("Save");
Menu print=new Menu("Print");
MenuItem print1=new MenuItem("Print1");
MenuItem print2=new MenuItem("Print2");

CheckboxMenuItem closeItem=new CheckboxMenuItem("Close");


MenuListener m=new MenuListener();

print1.addActionListener(m);
print2.addAciotnListener(m); public TestMenuBar()
{
FlowLayout fl=new FlowLayout();
Frame f=new Frame("TestMenuBar");
f.setLayout(fl);
menubar.add(file);
menubar.add(edit);
menubar.add(tools);
menubar.add(viewer);
menubar.add(help);
file.add(newItem);
file.add(openItem);
file.add(saveItem);
file.add(print);
print.add(print1);
print.add(print2);
file.addSeparator();
f.setMenuBar(menubar);
f.setVisible(true);
f.setBounds(0, 0, 300, 300);
f.setVisible(true);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//f.setVisible(true);
}
public static void main(String[] args) {
// TODO 自动生成方法存根
new TestMenuBar();
}}
class MenuListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("print1"))
System.out.println("runing print1");
else if(e.getActionCommand().equals("print2"))
System.out.println("running print2");
}
}是用Frame 做的一个菜单窗口,无法运行,看看什么问题...

解决方案 »

  1.   

    print1.addActionListener(m); 
    print2.addAciotnListener(m);(这里打错了).这是第一个错.
    第二个错是把这2句放到构造函数里去就可以了.
      

  2.   


    import java.awt.*;
    import java.awt.event.*;public class TestMenuBar {
    MenuBar menubar = new MenuBar(); Menu file = new Menu("File"); Menu edit = new Menu("Edit"); Menu tools = new Menu("Tools"); Menu viewer = new Menu("Viewer"); Menu help = new Menu("Help"); MenuItem newItem = new MenuItem("new"); MenuItem openItem = new MenuItem("Open"); MenuItem saveItem = new MenuItem("Save"); Menu print = new Menu("Print"); MenuItem print1 = new MenuItem("Print1"); MenuItem print2 = new MenuItem("Print2"); CheckboxMenuItem closeItem = new CheckboxMenuItem("Close"); MenuListener m = new MenuListener(); public TestMenuBar() {
    FlowLayout fl = new FlowLayout();
    Frame f = new Frame("TestMenuBar");
    f.setLayout(fl);
    menubar.add(file);
    menubar.add(edit);
    menubar.add(tools);
    menubar.add(viewer);
    menubar.add(help);
    file.add(newItem);
    file.add(openItem);
    file.add(saveItem);
    file.add(print);
    print.add(print1);
    print.add(print2);
    file.addSeparator();
    f.setMenuBar(menubar);
    f.setVisible(true);
    f.setBounds(0, 0, 300, 300);
    f.setVisible(true);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
                    //要写在方法体内
    print1.addActionListener(m);
    print2.addActionListener(m);
    // f.setVisible(true);
    } public static void main(String[] args) {
    // TODO 自动生成方法存根
    new TestMenuBar();
    }}class MenuListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand().equals("print1"))
    System.out.println("runing print1");
    else if (e.getActionCommand().equals("print2"))
    System.out.println("running print2");
    }
    }
      

  3.   


    import java.awt.*;
    import java.awt.event.*;public class TestMenuBar {
    MenuBar menubar = new MenuBar(); Menu file = new Menu("File"); Menu edit = new Menu("Edit"); Menu tools = new Menu("Tools"); Menu viewer = new Menu("Viewer"); Menu help = new Menu("Help"); MenuItem newItem = new MenuItem("new"); MenuItem openItem = new MenuItem("Open"); MenuItem saveItem = new MenuItem("Save"); Menu print = new Menu("Print"); MenuItem print1 = new MenuItem("Print1"); MenuItem print2 = new MenuItem("Print2"); CheckboxMenuItem closeItem = new CheckboxMenuItem("Close"); MenuListener m = new MenuListener(); // print1.addActionListener(m);
    // print2.addActionListener(m) public TestMenuBar() {
    FlowLayout fl = new FlowLayout();
    Frame f = new Frame("TestMenuBar");
    f.setLayout(fl);
    menubar.add(file);
    menubar.add(edit);
    menubar.add(tools);
    menubar.add(viewer);
    menubar.add(help);
    file.add(newItem);
    file.add(openItem);
    file.add(saveItem);
    file.add(print);
    print.add(print1);
    print.add(print2);
    file.addSeparator();
    f.setMenuBar(menubar);
    f.setVisible(true);
    f.setBounds(0, 0, 300, 300);
    f.setVisible(true);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    //要写到方法里
    print1.addActionListener(m);
    print2.addActionListener(m);
    f.setVisible(true);
    } public static void main(String[] args) {
    new TestMenuBar();
    }}class MenuListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand().equals("Print1"))//Print1 p要大写
    System.out.println("runing print1");
    else if (e.getActionCommand().equals("Print2"))//Print2 p要大写
    System.out.println("running print2");
    }
    }
      

  4.   


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class TestMenuBar {
    MenuBar menubar = new MenuBar();

    Menu file=new Menu("File");
    Menu edit=new Menu("Edit");
    Menu tools=new Menu("Tools");
    Menu viewer=new Menu("Viewer");
    Menu help=new Menu("Help");

    MenuItem newItem=new MenuItem("new");
    MenuItem openItem=new MenuItem("Open");
    MenuItem saveItem=new MenuItem("Save");

    Menu print=new Menu("Print");
    MenuItem print1=new MenuItem("Print1");
    MenuItem print2=new MenuItem("Print2"); CheckboxMenuItem closeItem = new CheckboxMenuItem("Close"); public TestMenuBar() {
    FlowLayout fl=new FlowLayout();
    Frame f=new Frame("TestMenuBar");

    MenuListener m = new MenuListener(f);
    print1.addActionListener(m);
    print2.addActionListener(m);

    f.setLayout(fl);
    menubar.add(file);
    menubar.add(edit);
    menubar.add(tools);
    menubar.add(viewer);
    menubar.add(help);
    file.add(newItem);
    file.add(openItem);
    file.add(saveItem);
    file.add(print);
    print.add(print1);
    print.add(print2);
    file.addSeparator();
    f.setMenuBar(menubar);
    f.setVisible(true);
    f.setBounds(0, 0, 300, 300);
    f.setVisible(true);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    //f.setVisible(true);
    }

    public static void main(String[] args) {
    // TODO 自动生成方法存根
    new TestMenuBar();
    }}class MenuListener implements ActionListener {
    Frame frame = null;
    public MenuListener(Frame frame) {
    this.frame = frame;
    }
    public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand().toLowerCase().equals("print1")) {
    //System.out.println("runing print1");
    JOptionPane.showMessageDialog(frame, "Information goes here", e.getActionCommand(), JOptionPane.INFORMATION_MESSAGE);
    } else if(e.getActionCommand().toLowerCase().equals("print2")) {
    //System.out.println("running print2");
    JOptionPane.showMessageDialog(frame, "Information goes here", e.getActionCommand(), JOptionPane.INFORMATION_MESSAGE);
    } else {
    //System.out.println("What can I do for you? - " + e.getActionCommand());
    JOptionPane.showMessageDialog(frame, "What can I do for you?", e.getActionCommand(), JOptionPane.INFORMATION_MESSAGE);
    }
    }
    }