0

私はこの質問を解決しようとしますが、無限ループがあり、この問題を解決する方法がわかりません。教えて。私はJavaを初めて使用します。

ターミナル内:

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
        at ThreadApplet.RandGen(ThreadApplet.java:10)
        at ThreadApplet.paint(ThreadApplet.java:30)
        at java.awt.Container.update(Container.java:1988)
        at sun.awt.RepaintArea.updateComponent(RepaintArea.java:255)

手伝ってくれてありがとう!

質問:ランダムに生成された三角形をさまざまな色で表示するアプレットを作成します。

    /////////////Applet

import java.awt.*;

import java.applet.*;

public class ThreadApplet extends Applet{
    MyThread thread;
    int x[],y[];
    public boolean ctrl=true;

    public void RandGen(){
        for (int i=0; i<3;i++){
            x[i]=(int)Math.random()*100;
            y[i]=(int)Math.random()*100;
        }       
    }

    public void start(){
        if (thread==null){
            thread = new MyThread(this);
            thread.start();
        }
    }

    public void stop(){
        thread = null;
    }

    public void paint(Graphics g){
        if (ctrl==true){
            g.setColor(Color.blue);
        } else {
            g.setColor(Color.red);
        }
        RandGen();
        g.fillPolygon(x,y,3);   
    }
}

public class MyThread extends Thread{
    ThreadApplet applet;

    public MyThread (ThreadApplet applet){
        this.applet=applet;
    }
    public void run(){
        Thread thisThread = Thread.currentThread();
        while (this==thisThread){           
            applet.repaint();
            try{Thread.sleep(50);}
            catch(InterruptedException e){} 
        }       
    }
}
4

1 に答える 1

3

使用する前にアレイを初期化する必要があります。

 int x[] = new int[17];

例えば。

于 2012-05-28T21:42:01.100 に答える