import javawt.*;   
import javawt.event.*;   
class AWT4 extends WindowAdapter implements ActionListener,WindowListener   
{   
Frame f=new Frame("模拟面板3号实验品");   
MenuBar mb;   
Menu mf,me,mh,ms;   
CheckboxMenuItem cm1;   
Panel p1,p2;   
String a[]={"1","2","3","4","5","6","7","8","9","*","0","#"};   
Button b[];   
TextField tf=new TextField(50);   public void setMenuBar()   
{   
mf=new Menu("文件(F)");   
me=new Menu("编辑(E)");   
mh=new Menu("帮助(H)");   
ms=new Menu("菜单栏示范");   
mb.add(mf);   
mb.add(me);   
mb.add(mh);   
mb.add(ms);   
mf.add(new MenuItem("打开"));   
mf.add(new MenuItem("保存"));   
mf.add(new MenuItem("关闭"));   
mf.add(new CheckboxMenuItem("我是NB",true));   
mf.add(new CheckboxMenuItem("我不是NB"));   
}   
public void listenter()   
{   
f.addWindowListener(this);   
mf.addActionListener(this);   
me.addActionListener(this);   
mh.addActionListener(this);   
ms.addActionListener(this);   
}   public void windowClosing(WindowEvent e)   
{   
System.exit(0);   
}   
public void actionPerformed(ActionEvent e)   
{   
if(e.getActionCommand()=="打开")   
tf.setText("已经打开");   
if(e.getActionCommand()=="保存")   
tf.setText("已经保存");   
if(e.getActionCommand()=="关闭")   
System.exit(0);   
}   
public void display()   
{   
f.setSize(480,360);   
f.setMenuBar(mb);   
f.setLayout(new FlowLayout());   
p1=new Panel();   
p1.add(tf);   
p2=new Panel();   
p2.setLayout(new GridLayout(4,3,5,5));   
for(int i=0; i <a.length;i++) 

Button b[]=new Button[a.length];   
p2.add(b[i]);   
}   f.setVisible(true);   
}  
public static void main(String arg[])   
{   
(new AWT4()).display();   
}   }  编译通过  
运行失败,说是没找到指针,这是怎么回事?求指正!  

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;class AWT4 extends WindowAdapter implements ActionListener,WindowListener {
        Frame f=new Frame("模拟面板3号实验品");
        MenuBar mb;
        Menu mf,me,mh,ms;
        CheckboxMenuItem cm1;
        Panel p1,p2;
        String a[]={"1","2","3","4","5","6","7","8","9","*","0","#"};
        Button b[];
        TextField tf=new TextField(50);    public void setMenuBar() {
            mf=new Menu("文件(F)");
            me=new Menu("编辑(E)");
            mh=new Menu("帮助(H)");
            ms=new Menu("菜单栏示范");
            mb.add(mf);
            mb.add(me);
            mb.add(mh);
            mb.add(ms);
            mf.add(new MenuItem("打开"));
            mf.add(new MenuItem("保存"));
            mf.add(new MenuItem("关闭"));
            mf.add(new CheckboxMenuItem("我是NB",true));
            mf.add(new CheckboxMenuItem("我不是NB"));
        }    public void listenter() {
            f.addWindowListener(this);
            mf.addActionListener(this);
            me.addActionListener(this);
            mh.addActionListener(this);
            ms.addActionListener(this);
        }    public void windowClosing(WindowEvent e) {
            System.exit(0);
        }    public void actionPerformed(ActionEvent e) {
            if(e.getActionCommand()=="打开")
                tf.setText("已经打开");
            if(e.getActionCommand()=="保存")
                tf.setText("已经保存");
            if(e.getActionCommand()=="关闭")
                System.exit(0);
        }    public void display() {
            f.setSize(480,360);
            f.setMenuBar(mb);
            f.setLayout(new FlowLayout());
            p1=new Panel();
            p1.add(tf);
            p2=new Panel();
            p2.setLayout(new GridLayout(4,3,5,5));        for(int i=0; i <a.length;i++) {
                //Button b[]=new Button[a.length];
                //p2.add(b[i]);
                p2.add(new Button("" + i));
            }
            f.add(p2);        f.setVisible(true);
        }
        public static void main(String arg[]) {
            (new AWT4()).display();
        }}
      

  2.   

    楼上正解
          Button b[] = new Button[a.length];
          p2.add(b[i]);这里声明了一个对象数组,可是没有对数组里面的对象进行初始化。导致b[i] 为null
      

  3.   

    Button b[] = new Button[a.length]; 
          p2.add(b[i]);