原题:创建一个名称为Myapplet的Applet,并为其提供多线程功能。在Applet中输出从1到20的数字,且每个数字间延迟500毫秒。import java.awt.*;
import java.applet.*;public class Myapplet extends Applet implements Runnable
{
Thread t1;
Graphics g1;
Integer i;
public void init()
{
t1=new Thread(this);
t1.start();
}
public void paint(Graphics g)
{
g1=g;
}
public void run()
{
for(i=1;i<=5;i++)
{
String s=Integer.toString(i);
g1.drawString(s,50,50+i*10);
try
{
Thread.sleep(500);
}
catch(InterruptedException e)
{
System.out.println ("stop");
}
}
}
}以上的运行结果总是出现"NullPointerException"异常,无法正确显示。哪位高手能给我一个提示?我先谢了!
import java.applet.*;public class Myapplet extends Applet implements Runnable
{
Thread t1;
Graphics g1;
Integer i;
public void init()
{
t1=new Thread(this);
t1.start();
}
public void paint(Graphics g)
{
g1=g;
}
public void run()
{
for(i=1;i<=5;i++)
{
String s=Integer.toString(i);
g1.drawString(s,50,50+i*10);
try
{
Thread.sleep(500);
}
catch(InterruptedException e)
{
System.out.println ("stop");
}
}
}
}以上的运行结果总是出现"NullPointerException"异常,无法正确显示。哪位高手能给我一个提示?我先谢了!
{
g1=g; // 位置 1
}
public void run()
{
for(i=1;i<=5;i++)
{
String s=Integer.toString(i);
g1.drawString(s,50,50+i*10); // 位置 2: 这里 g1 还没被赋值就被引用了
//</applet>
//import java.awt.*;
import java.applet.*;public class Myapplet extends Applet implements Runnable
{
Thread t1;
Graphics g1;
Integer i;
public void init()
{
t1=new Thread(this);
t1.start();
}
public void paint(Graphics g)
{
g1=g;
}
public void run()
{
for(int i=0;i<=5;i++) // 由于第一次会被paint覆盖,所以从0开始
{
String s=Integer.toString(i);
getGraphics().drawString(s,50,50+i*10);
try
{
Thread.sleep(500);
}
catch(InterruptedException e)
{
System.out.println ("stop");
}
}
}
}
运行:
F:\>javac Myapplet.java
F:\>appletviewer Myapplet.java