public MonthCalendar()
{    
super("月历");
this.setBounds(300, 300, 250, 200);
this.setBackground(Color.WHITE);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);


panel1=new JPanel(new FlowLayout(FlowLayout.CENTER));
this.getContentPane().add(panel1,"North");
button_qian = new JButton("<");
button_qian.addActionListener(this);
panel1.add(button_qian);
text_nian=new JTextField(year+"年"+month+"月",10);
text_nian.setHorizontalAlignment(JTextField.CENTER);
text_nian.setEditable(false);
panel1.add(text_nian);
button_hou = new JButton(">");
button_hou.addActionListener(this);
panel1.add(button_hou);

panel2=new JPanel();
this.getContentPane().add(panel2,"Center");
       panel2.add(new JLabel("日       一       二       三       四       五       六"));
       
       JTextField text[]=new JTextField[M];
       panel3=new JPanel();
       panel3.setLayout(new GridLayout(7,7));
       this.getContentPane().add(panel3);
       for(int i=0;i<M;i++)
       {
        if(i<week)
        {
        text[i].setText(" ");        text[i].setHorizontalAlignment(JTextField.CENTER);
        text[i].setEditable(false);
    
        }
        if(i>=week && i<week+days)
        {
        text[i].setText(" "+(i-week+1));
        text[i].setHorizontalAlignment(JTextField.CENTER);
        text[i].setEditable(false);
       
        }
        if(i>=week+days)
        {
        text[i].setText(" ");
        text[i].setHorizontalAlignment(JTextField.CENTER);
        text[i].setEditable(false);
        }
        panel3.add(text[i]);
       }
    
       
actionPerformed(null);
this.setVisible(true);
}
提示指向那句红色加粗字体的代码,
Exception in thread "main" java.lang.NullPointerException
at MonthCalendar.<init>(MonthCalendar.java:58)
为啥会 出现这样的额错误啊,java中不是没有指针了么?指针异常

解决方案 »

  1.   

     JTextField text[]=new JTextField[M];
    这句执行后,数组text的所有元素都是null. 需要给每个元素初始化。类似:
    for(int i=0; i<test.length; i++)
    {
        test[i] = new JTextField();
    }
      

  2.   

    在JAVA里面 使用数组之前要先初始化 不然都会提示空指针异常。