String sql = "insert into member(memNum,memPsw,memSex,memSch,memLike,memEmail,memQQ,memBtday) values(?,?,?,?,?,?,?,?)";
       pstmt = con.prepareStatement(sql);
String[] like = null;
int i=0;
if(jcblike1.isSelected()){
like[i]=jcblike1.getText();
i++;
}
if(jcblike2.isSelected()){
like[i]=jcblike2.getText();
i++;
}
if(jcblike3.isSelected()){
like[i]=jcblike3.getText();
i++;
}
if(jcblike4.isSelected()){
like[i]=jcblike4.getText();
}
pstmt.setString(5, like[i]);
我有四个复选框,想先判断是否被选中,让后再获取它的值,再装到一个字符串数组中去!!
我运行报错NullPointerException异常,在like[i]=jcblike1.getText();这句!
请教这个怎么弄 啊?

解决方案 »

  1.   

            空指针异常,  加个检查看看 ,  if(jclike1 != null && jcblike1.isSelected())
      {
                 like[i]=jcblike1.getText();
                   i++;
      }不过想要正确结果LZ最好检查下jcblike这些checkbox初始化了没,jcblike1 = new JCheckbox();或者是不是你哪个地方把它置空了
      

  2.   


    jcblike都不是空的
    jlblike = getJltit("爱 好:",30, 200, 50, 20);
    jcblike1 = getjckLike("运动",80, 200, 60, 20);
    jcblike2 = getjckLike("音乐",150, 200, 60, 20);
    jcblike3 = getjckLike("上网",220, 200, 60, 20);
    jcblike4 = getjckLike("看书",290, 200, 60, 20);我加了jclike1 != null后,还是like[i]=jcblike1.getText();运行到这句报空指针异常
    我在前面指定了String[] like = null;的!
    我怀疑是like[i]为空!
    但是我给它赋值的啊!