我编写了这段代码,它给出了NullPointerException

时间:2013-06-26 02:20:47

标签: java nullpointerexception awt jbutton shadowing

import java.awt.*;
import java.awt.event.*;

public class sample2 extends Frame
    {
    Button b[];
    public sample2()
        {
        super("trying");
        b=new Button[10];
        setLayout(new FlowLayout());
        for(int i=0;i<10;i++)
            add(b[i]);
        }
    public static void main(String args[])
        {
        sample2 obj=new sample2();
        obj.setSize(500,100);
        obj.setVisible(true);
        }
    }

例外如下

Exception in thread "main" java.lang.NullPointerException 
at java.awt.Container.addImpl(Container.java:1037) 
at java.awt.Container.add(Container.java:373) 
at sample2.<init>(sample2.java:13) 
at sample2.main(sample2.java:17) 

1 个答案:

答案 0 :(得分:5)

是的,您创建了Button数组,但在使用之前永远不会初始化数组的元素。这意味着您要在GUI中添加空按钮。在使用之前先创建您的按钮。

    for(int i=0;i<10;i++)
        b[i] = new Button();
        add(b[i]);
    }