我想运用多线程 使一串字符从左向右运动 但是我的不动 希望高手给我指点 改一下!!
import java.applet.*;
import java.awt.Graphics;
public class HelloWorld extends Applet implements Runnable{
Thread my;
int i;
public void init(){
my=new Thread();
my.start();

}
public void run(){ while(true)
{
if(i<300)
i=i+10;
else
i=0;
repaint();

try
{
my.sleep(50);
}
catch(InterruptedException ie)
{
System.out.println("Error: " + ie);
}
}}
public void paint(Graphics g){
g.drawString("HEllo World!",i,50);
}
}

解决方案 »

  1.   

    把这行改掉,就可以了
    my=new Thread();
    改成 my=new Thread(this);
      

  2.   

    你直接new Thread,那你启动是什么线程呢?你要明确指出是哪个run()方法被调用
    就想楼上说的那样new
      

  3.   

    兄弟:这样改有点意思。import java.applet.*;
    import java.awt.Graphics;
    public class HelloWorld extends Applet implements Runnable{
    Thread my;
    int i=99;
    boolean right = true;
    public void init(){
    my=new Thread(this);
    my.start(); }public void run(){ while(true)
    {
    if(right)
    {
     i=i+3;
     if(i==270)
     right=false;
         }
    else
    {
    i=i-3;
    if(i==99)
    right=true;
        }
    repaint(); try
    {
    Thread.sleep(150);
    }
    catch(InterruptedException ie)
    {
    System.out.println("Error: " + ie);
    }
    }}
    public void paint(Graphics g){
    g.drawString("HEllo World!",i,50);
    }
    }