当前位置: 代码迷 >> J2SE >> JLabel初始化名称?解决办法
  详细解决方案

JLabel初始化名称?解决办法

热度:65   发布时间:2016-04-24 14:49:00.0
JLabel初始化名称?
我想做10个JLabel,怎么初始化名称啊?

  JPanel[]   JPane   =   new   JPanel[10];
  JLabel[]   JLabe   =   new   JLabel[10];
String[]   names   =   { "学生编号 ", "学生姓名 ", "入学时间 ", "毕业时间 ",
  "出生日期 ", "籍贯 ", "政治面貌 ", "学籍情况 ", "年级 ", "学位 "};

  for(int   i   =0   ;   i   <   10;   i   ++)
  {
  System.out.println(names[i]);
JLabe[i].setName(names[i]);
  }
  JTextField[]   JTF   =   new   JTextField[10];
 
  for(int   i   =0   ;   i   <   10;   i   ++)
  {
  JPane[i].add(JLabe[i]);
  JPane[i].add(JTF[i]);
                                                        add(JPane[i]);
         
  }

我是这样做的,但是不用运行...

报错信息:

Exception   in   thread   "main "   java.lang.NullPointerException
at   wshong.packag.Jpane. <init> (MainTest.java:51)
at   wshong.packag.TestFrame. <init> (MainTest.java:21)
at   wshong.packag.MainTest.main(MainTest.java:10)

请问是怎么回事?怎么样解决

------解决方案--------------------
用JLabel.setText函数

还有一点不要把变量定义成JLabel、JPanel。。。看了让人头晕啊。
------解决方案--------------------
jlabel[i]= new JLabel(names[i]);

------解决方案--------------------
单步调试一下,看那个对象没有初始化成功除了错误
------解决方案--------------------
JLabel[] JLabe = new JLabel[10]此句仅仅是定义了创建的是标签数组,而并没对各个标签进行实例化,故JLabe[i].setName(names[i])可改为:JLabe=new JLabel(names[i]);同理JPane也是这个理,还有就是JFrame中需要类Container来添加组件(此处的说法不准确),即: Container con=getContentPane();
con.add(组件名)
  相关解决方案