我有一系列JLabel,它们似乎有效。如果我做一个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);
}
}
答案 0 :(得分:1)
topLabels尚未实例化。它是JPanel类型,但直到
才是JPanel topLabels = new JPanel();
在此之前,它是空的。
答案 1 :(得分:1)
private JPanel topLabels;
在哪里初始化?你可能想要这样的东西:
topLabels = new JPanel();
在DrawCalendar
的构造函数中,或者只是在声明行中隐式执行:
private JPanel topLabels = new JPanel();