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(组件名)