我定义了一个全局
JLabel[] jl;
然后下面有个方法,里面是用循环写的:
String[] s={"用户id","姓名","性别","年龄","系别代号","密码"};
jl[i]=new JLabel(s[i]);
这样子不行么?
运行直接就给我报错了。。
java.lang.NullPointerException
怪事。。上面同样定义的
 JTextField []jt=;
下面同样用却没有什么事 

解决方案 »

  1.   

    JLabel[] jl = new JLabel(6);  
    String[] s = {"用户id","姓名","性别","年龄","系别代号","密码"};
    for (int i = 0; i < 6; i++)
    {
        jl[i].setText(s[i]);
    }
      

  2.   

    还是不行,还是提示同样的错误还有,不能JLabel(6),得JLabel[6]
    还是一样提示错误。怪事了
      

  3.   

    JLabel[] jl = new JLabel[6];
    String[] s = {"用户id","姓名","性别","年龄","系别代号","密码"};
    for (int i = 0; i < 6; i++)
    {
        jl[i].setText(s[i]);
    }
    JLabel[]你没有new.所以报空
      

  4.   

    你即使在上面JLabel[] jl=new JLabel[6];
    下面使用jl[i]=s[i];这样也是错误的
    或者上面原来我弄的,先JLabel[] jl;
    然后下面jl[i]=new JLabel(s[i]);一样的错误没有人可以解决这个问题么?晕了!!
      

  5.   

    JLabel[] jl = new JLabel[6];
    String[] s = {"用户id","姓名","性别","年龄","系别代号","密码"};
    for (int i = 0; i < 6; i++)
    {
        jl[i] = new JLabel(s[i]);
    }
    这样应该不会报错了吧
      

  6.   

    我个人的理解JLabel[] jl = new JLabel[6]; //是建立一个JLabel 的一个引用数组,里面jl[i]是引用
    //没有被实例化我也是初学者,不要见笑哈
      

  7.   

    一个是数组的初始化  另外一个是对JLabel的初始化。不一样的。。不是初始化两次。。
      

  8.   

    我认为:
    首先是在内存分配6个JLabel的引用空间,
    每一个都没有被实例化,只是一个引用 ,也没有指向任何的地址
    然后jl[i] = new JLabel(String s)
    是把每一个jl实例化了就像
    String[] s = new String[6]
    这时s[i] 都是null
    String str = "123";
    s[0] = str;
    这样是s[0]这个引用指向str的地址,s[0]并不是一个实例
    应该这样s[0] = new String(str);才能把s[0]初始化我也是初学者,只是一点点小小的看法罢了