import java.awt.*;public class DDD extends Canvas implements Runnable
{ String t="ÅíΰÍòËê";
Thread s;
int x=40,y=10;
public DDD()
{
this.setSize(200,200);
this.setVisible(true);
    s=new Thread(this);
s.start();
} public void run()
{
Thread ss=Thread.currentThread();
while(s==ss)
{
try
{
s.sleep(1000);
x++;
}catch(InterruptedException i){i.printStackTrace();}
    repaint();
}
}

public void paint(Graphics g)
{
g.drawString(t,x,y);

public static void main(String[] args)
{
Frame f=new Frame();
DDD d=new DDD();
f.add(d);
f.setSize(400,400);
f.setVisible(true); }
}
canvas要放在容器中才行。

解决方案 »

  1.   

    谢谢
    现在我想String对象可以滚动,怎么办啊
      

  2.   

    我用语句打印了来看
    import java.awt.*;public class DDD extends Canvas implements Runnable
    { String t="彭伟万岁";
    Thread s;
    int x=-400,y=10;
    public DDD()
    {
        s=new Thread(this);
    s.start();
    } public void run()
    {   System.out.println("cccccccccccccccccc");
    Thread ss=Thread.currentThread();
    while(s==ss)
    {
     repaint();
    try
    {
       s.sleep(1000);
          System.out.println("bbbbbbbbbbbbbb");
    }catch(InterruptedException i)
    {i.printStackTrace();}
       
    }
    }

    public void paint(Graphics g)
    {
    g.drawString(t,x,y);

    public static void main(String[] args)
    {
    DDD d=new DDD();
            System.out.println("aaaaaaaaa");
    }
    }有这样的结果
    aaaaaaaaa
    cccccccccccccccccc
    bbbbbbbbbbbbbb
    bbbbbbbbbbbbbb
    bbbbbbbbbbbbbb
    bbbbbbbbbbbbbb
    bbbbbbbbbbbbbb
    bbbbbbbbbbbbbb
    bbbbbbbbbbbbbb
    ..
    ..
    也就是说你
    while(s==ss)
    {
    .....
    }
    有问题罗,s==ss总是成立