import java.awt.*;
import java.awt.event.*;
class WW extends Frame implements ActionListener {         //不应有public
TextField f = new TextField();          //没有生成实例
Button btn1, btn2;
MenuBar mb = new MenuBar();
Menu m1 = new Menu("Yeah");
Menu m2 = new Menu("doing");
Menu m3 = new Menu("No");
MenuItem item = new MenuItem("something", new MenuShortcut('p'));
CheckboxMenuItem checkbox = new CheckboxMenuItem("different");
MenuItem star = new MenuItem("Ask for more!");
WW() {                              //构造函数为WW
super("idea");
setSize(350, 200);
add(f);           //导致此行null异常
mb.add(m1);
checkbox.setState(true);
m1.add(m2);
m1.add(item);
m1.add(checkbox);
m1.addSeparator();
m1.add(star);
m2.add("China");
m2.add("daily");
mb.add(m3);
btn1 = new Button("smile");
btn2 = new Button("charming");
add(btn1);
add(btn2);
item.addActionListener(this);
star.addActionListener(this);
btn1.addActionListener(this);
btn2.addActionListener(this);
setMenuBar(mb);
show();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == star)
System.exit(0);
else if (e.getSource() == btn2)
System.exit(0);
else if (e.getSource() == btn1)
f.setText("你按下了" + e.getActionCommand());
else
f.setText(e.getActionCommand() + "被打开");
}}public class W6 {
public static void main(String[] args) {
WW w = new WW();
}
}

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    public class W6 extends Frame implements ActionListener{
    TextField f;
    Button btn1,btn2;
    MenuBar mb=new MenuBar();
    Menu m1=new Menu("Yeah");
    Menu m2=new Menu("doing");
    Menu m3=new Menu("No");
    MenuItem item=new MenuItem("something",new MenuShortcut('p'));
    CheckboxMenuItem checkbox=new CheckboxMenuItem("different");
    MenuItem star=new MenuItem("Ask for more!");
    W6(){
    super("idea");

    setSize(350,200);
    f = new TextField();
    add(f);
    mb.add(m1);
            checkbox.setState(true);
    m1.add(m2);
    m1.add(item);
    m1.add(checkbox);
    m1.addSeparator();
    m1.add(star);
    m2.add("China");
    m2.add("daily");
    mb.add(m3);
    btn1=new Button("smile");
    btn2=new Button("charming");
    add(btn1);
    add(btn2);
    item.addActionListener(this);
    star.addActionListener(this);
    btn1.addActionListener(this);
    btn2.addActionListener(this);
    setMenuBar(mb);
    show();
    }
    public void actionPerformed(ActionEvent e){
    if(e.getSource()==star)
    System.exit(0);
    else if(e.getSource()==btn2)
    System.exit(0);
    else if(e.getSource()==btn1)
    f.setText("你按下了"+e.getActionCommand());
    else
    f.setText(e.getActionCommand()+"被打开");
    }
    public static void main(String[] args){
    Frame f = new W6();
    f.show();
    }
    }
      

  2.   

    贴错了,应该是这段代码
    //W6.jaaimport java.awt.*;
    import java.awt.event.*;
    public class W6 extends Frame implements ActionListener{
    TextField f;
    Button btn1,btn2;
    MenuBar mb=new MenuBar();
    Menu m1=new Menu("Yeah");
    Menu m2=new Menu("doing");
    Menu m3=new Menu("No");
    MenuItem item=new MenuItem("something",new MenuShortcut('p'));
    CheckboxMenuItem checkbox=new CheckboxMenuItem("different");
    MenuItem star=new MenuItem("Ask for more!");
    W6(){
    super("idea");
    setSize(350,200);
    add(f);
    mb.add(m1);
            checkbox.setState(true);
    m1.add(m2);
    m1.add(item);
    m1.add(checkbox);
    m1.addSeparator();
    m1.add(star);
    m2.add("China");
    m2.add("daily");
    mb.add(m3);
    btn1=new Button("smile");
    btn2=new Button("charming");
    add(btn1);
    add(btn2);
    item.addActionListener(this);
    star.addActionListener(this);
    btn1.addActionListener(this);
    btn2.addActionListener(this);
    setMenuBar(mb);
    show();
    }
    public void actionPerformed(ActionEvent e){
    if(e.getSource()==star)
    System.exit(0);
    else if(e.getSource()==btn2)
    System.exit(0);
    else if(e.getSource()==btn1)
    f.setText("你按下了"+e.getActionCommand());
    else
    f.setText(e.getActionCommand()+"被打开");
    }
    public static void main(String args[]){
    new W6();
    }
    }
      

  3.   

    明白,就是因为f没有初始化,OK,接分。