Java运行报错Exception in thread "main" java.lang.NullPointerException

源代码:packagecom.tracker;importjavax.swing.*;publicclasswindowextendsJFrame{publicwindo... 源代码:
package com.tracker;

import javax.swing.*;

public class window extends JFrame {

public window() {
int i=0;
setLayout(null);
this.setBounds(1,1,1200,800);
this.setTitle("温度监测");
this.add(panel);
for(i=0;i<256;i++) {
label[i].setBounds((i/32)*150,(i%32)*25,21,6);
label[i].setText(i+":");
panel.add(label[i]);
}

this.setVisible(true);
}

JPanel panel=new JPanel();

JLabel[] label=new JLabel[25];

public static void main(String[] args) {
window w=new window();
}
}

以下为控制台的错误信息:Exception in thread "main" java.lang.NullPointerException
at com.tracker.window.<init>(window.java:14)
at com.tracker.window.main(window.java:27)
在下Java新人,开始接触不到一个月,望各位高手赐教
展开
 我来答
gesunny
2012-04-05 · 超过11用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:39.3万
展开全部
两个错误:
1.你的label数组个数不一样,第一个错越界了,改为:JLabel[] label=new JLabel[256];
2.label[i]要进行实例化,在 label[i].setBounds((i/32)*150,(i%32)*25,21,6);之前,增加一句:label[i]=new JLabel();
644792799
2012-04-05 · TA获得超过662个赞
知道小有建树答主
回答量:696
采纳率:100%
帮助的人:529万
展开全部
把 for(i=0;i<256;i++) {
label[i].setBounds((i/32)*150,(i%32)*25,21,6);
label[i].setText(i+":");
panel.add(label[i]);
}
改成
for(i=0;i<256;i++) {
label[i] = new JLabel();
label[i].setBounds((i/32)*150,(i%32)*25,21,6);
label[i].setText(i+":");
panel.add(label[i]);
}
因为你label数组中没有JLabel对象,所以对null set属性就报空指针异常
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友42b7daa
2012-04-05 · TA获得超过105个赞
知道答主
回答量:105
采纳率:0%
帮助的人:73.1万
展开全部
写了详细注释!

package com.tracker;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class window extends JFrame {

public window() {
int i=0;
setLayout(null);
this.setBounds(1,1,1200,800);
this.setTitle("温度监测");
this.add(panel);
for(i=0;i<25;i++) {
label[i] =new JLabel();//在这里实例化JLabel
label[i].setBounds((i/32)*150,(i%32)*25,21,6);
label[i].setText(i+":");
panel.add(label[i]);
}

this.setVisible(true);
}

JPanel panel=new JPanel();

//这里只是数组声明,还未JLabel实例化
JLabel[] label=new JLabel[25];

public static void main(String[] args) {
window w=new window();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cloudtree1973
2012-04-05 · TA获得超过2620个赞
知道小有建树答主
回答量:567
采纳率:100%
帮助的人:343万
展开全部
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;
public class window extends JFrame{
public window() {
int i=0;
setLayout(new FlowLayout());
this.setBounds(1,1,1200,800);
this.setTitle("温度监测");
this.add(panel);
for(i=0;i<25;i++) {
JLabel l=new JLabel();
label[i]=l;
label[i].setBounds((i/32)*150,(i%32)*25,21,6);
label[i].setText(i+":");
panel.add(label[i]);
}

this.setVisible(true);
}

JPanel panel=new JPanel();

JLabel[] label=new JLabel[25];

public static void main(String[] args) {
window w=new window();
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2f78d3b
2012-04-05 · TA获得超过175个赞
知道小有建树答主
回答量:302
采纳率:0%
帮助的人:152万
展开全部
label[i]是空对象,无法操作,加一行:label[i] = new JLabel();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路风逍遥
2012-04-06 · TA获得超过548个赞
知道小有建树答主
回答量:598
采纳率:0%
帮助的人:263万
展开全部
又是swing...
该死的空指针异常
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式