1

我有一系列 JLabels,它们似乎有效。如果我做一个 System.out.print(days[index]); 我得到了包含的实际信息,并且标签存在并且有效。

当我尝试在面板的任何索引处添加标签时,我得到一个空指针异常,我不知道为什么?

public class DrawCalendar extends JPanel{

private JLabel month = new JLabel("Month");
private JLabel[] days = {
    new JLabel("Sunday"),
    new JLabel("Monday"),
    new JLabel("Tuesday"),
    new JLabel("Wednesday"),
    new JLabel("Thursday"),
    new JLabel("Friday"),
    new JLabel("Saturday")
};
    private JPanel dayBoxes;
    private JPanel topLabels;





    public DrawCalendar(int month){

        topLabels.add(days[1]);  //the NullPointerException caused here
        add(topLabels);

    }
}
4

2 回答 2

1

在哪里private JPanel topLabels;初始化?你可能想要这样的东西:

topLabels = new JPanel();

在您DrawCalendar的构造函数中,或者只是在声明行中隐式执行:

private JPanel topLabels = new JPanel();
于 2012-12-14T20:55:53.987 回答
1

topLabels 尚未实例化。它是 JPanel 类型,但直到它不是 JPanel

  topLabels = new JPanel();

在那之前,它是空的。

于 2012-12-14T20:53:09.217 回答