在Java中将JLabel数组添加到单个面板中?

时间:2012-12-14 20:48:52

标签: java arrays swing jpanel jlabel

我有一系列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);

    }
}

2 个答案:

答案 0 :(得分:1)

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

才是JPanel
  topLabels = new JPanel();

在此之前,它是空的。

答案 1 :(得分:1)

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

topLabels = new JPanel();

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

private JPanel topLabels = new JPanel();