JButton的NullPointerException

Alf*_*red 3 java swing nullpointerexception jbutton

我试图将文本分配给循环内的按钮,但我得到一个NullPointerException.我已经在类的构造函数中初始化了按钮数组,在initilizatoin之后,我调用了以下方法.这是我收到错误的代码.

public class Alfred
{
   private String names[]={"nfs","gta","maxpayne","hitman"};
   private JButton but[];

   public Alfred()
   {
    ...
     but= new JButton[4];
    AssignLettersToButtons();
   }
    private void AssignLettersToButtons()
    {       
        for(int i=0;i<names.length;i++)
        {
            but[i].setText(names[i]); // error
            pane1.add(but[i]);
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

按钮数组和名称数组的长度相同.这个例外的原因是什么,我该如何解决?

问候

Per*_*ror 5

 but= new JButton[4]; 
Run Code Online (Sandbox Code Playgroud)

这只为四个数组元素分配空间 ; 每个元素都初始化null,像对象一样的引用类型的默认值JButton.

but[0],but[1],but[2],but[3]都是null.

你应该像这样初始化它们:

but[0] = new JButton(); //or whatever.
Run Code Online (Sandbox Code Playgroud)