做下单步调试,应该可以看出问题在哪。有时间了,再帮你看看

解决方案 »

  1.   

    加了热键以后,一级菜单就不响应了,还有二级菜单响应在 两个以上也有问题,也就是红字部分有问题!所以希望高手帮帮忙!
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    //import java.io.*;import javax.swing.*;class word extends Panel implements ActionListener {
    TextField text = null;
    Button b = null; word() {
    text = new TextField(50);
    text.setEditable(false);
    b = new Button("Yes");
    add(new Label("click the button then display some words"));
    add(text);
    add(b);
    b.addActionListener(this);
    } public void actionPerformed(ActionEvent e) {
    if (e.getSource() == b) {
    text.setText("this is a new window, welcome~");
    }
    }
    }class MyCanvas extends Canvas {
    public void MyCanvas() {
    setSize(160, 160);
    } public void paint(Graphics g) {
    g.drawOval(20, 20, 15, 15);
    }
    }class ab extends java.applet.Applet implements ActionListener {
    Button b1;
    MyCanvas canvas; ab() {
    canvas = new MyCanvas();
    b1 = new Button("circle");
    b1.addActionListener(this);
    b1.setBackground(Color.cyan);
    add(b1);
    add(canvas);
    } public void actionPerformed(ActionEvent e) {
    if (e.getSource() == b1) {
    canvas.MyCanvas();
    canvas.setBackground(Color.yellow);
    canvas.repaint();
    }
    }}class Win extends JFrame implements ActionListener {
    JMenuBar bar = null;
    JMenu menu = null;
    JMenu menu2 = null;
    JMenuItem item1,subMenuItem1,subMenuItem2;
    word w;
    ab a; Win() {
    super("Using JMenus");
    bar = new JMenuBar();
    menu = new JMenu("choice");
    menu.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {

    if(null!=a && null!=w)
    {
    w.removeAll();
    a.removeAll();
    }

    }
    });
    bar.add(menu);
    menu.setMnemonic('c');
    item1 = new JMenuItem("input words");
    item1.setMnemonic('i');
    menu.add(item1);

    //  menu.addSeparator(); menu2 = new JMenu("file");
    menu.add(menu2);
    subMenuItem1 = new JMenuItem("你好");
    menu2.add(subMenuItem1);
    subMenuItem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_0,ActionEvent.CTRL_MASK));
    subMenuItem2 = new JMenuItem("再见");
    menu2.add(subMenuItem2); JMenuItem exitItem = new JMenuItem("Exit");
    exitItem.setMnemonic('x');
    exitItem.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
    System.exit(0);
    }
    });
    menu.add(exitItem); setJMenuBar(bar); item1.addActionListener(this);
    subMenuItem1.addActionListener(this);
    subMenuItem2.addActionListener(this); w = new word();
    a = new ab(); setVisible(true);
    setBounds(100, 100, 100, 100);
    } public void actionPerformed(ActionEvent e) {
    if (e.getSource() == item1) {

    add(w, "Center");
    validate();

    }  
      else if(e.getSource()==subMenuItem1 )
    {

    add(a, "Center");
    validate();
    }
      else
    {
    JOptionPane.showMessageDialog(Win.this,
                      "what are you doing!?",
                      "再见",JOptionPane.PLAIN_MESSAGE);
    }
    }
    }public class laiqu_1 {
    public static void main(String args[]) {
    Win win = new Win();
    win.setBounds(0, 0, 500, 500);
    win.setVisible(true);
    win.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    }
    }//建议你学学新的JDK,你的方法里有一些是过时的,但不属于错的。还有你的格式很有问题,注意养成良好的习惯。
    //这种问题你应该去J2SE里问