线程“Timer-0”中的异常java.lang.NullPointerException

时间:2013-11-19 19:43:35

标签: java exception timer nullpointerexception

我有下面的代码,它显示了一个异常,即:线程“Timer-0”中的异常java.lang.NullPointerException。错误是在行:jLabel1.setIcon(黑色);如果我删除这一行,那么它运作良好。任何的想法?谢谢!

Icon black=createImageIcon("black.PNG");

protected static ImageIcon createImageIcon(String path) {
    java.net.URL imgURL = Frame1.class.getResource(path);
    if (imgURL != null) {
        return new ImageIcon(imgURL);
    } else {
        System.err.println("Couldn't find file: " + path);
        return null;
    }
}

public Frame1(int seconds) {
    timer = new Timer();
    timer.schedule(new RunMeTask(), 1000,1000);
    }


 public class RunMeTask extends TimerTask {
    public int k=0;

public void run() {
    System.out.println("Run Me ~");
            jLabel1.setIcon(black);    //error
            k++;
            if (k==10) {
              timer.cancel();
            }
}
}

public static void main(String args[]) {
    new Frame1(1);
    System.out.format("Task scheduled.%n");
java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Frame1().setVisible(true);
        }
    });
}

1 个答案:

答案 0 :(得分:0)

代码要么不知道jLabel1是什么,要么不知道black是什么。确保两者都是run()方法视图中的对象。