import java.lang.String.*;
import java.awt.*;
class Word extends Thread
{
String str="Welcome"; public void run()
{
Frame F=new Frame();
F.setSize(200,200);
F.validate();
F.show();
TextField word =new TextField();
F.add(word);

for(int n=0;n<str.length();n++)
{

word.setText(str.substring(0,n+1));
this.sleep(5000);




}




}
}
public class shiyan6{
public static void main(String[] arg)
{
Word a=new Word();


a.start();

}
}
怎么能逐步显示文字(一个一个字的显示),在线等,谢了?

解决方案 »

  1.   

    .....
    for (int n = 0; n < str.length(); n++) { word.setText(str.substring(0, n + 1));
    F.repaint();
    try {
    this.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    .......中间的地方加上个repaint()方法就可以了
      

  2.   

    不用repaint我只能显示 welcome
    这是为什么?
      

  3.   

    还有个问题,这程序是少了main()函数不?帮忙改下
    import java.awt.*;
    import java.applet.Applet;
    public class ThreadRollingMessage extends Applet implements Runnable
    {
    Thread runThread;
    String s="Welcome";
    int s_len=s.length();
    int x_cha=0;
    Font font=new Font("TimerRoman",Font.BOLD,45);
    public void start()
    {
    if(runThread==null)
    {
    runThread=new Thread(this);
    runThread.start();
    }
    } public void run()
    {
    while(true)
    {
          if(x_cha++>s_len)
      x_cha=0;
     repaint();
         try
    { Thread.sleep(1000);
    }catch(InterruptedException e)
    {
    e.printStackTrace();
    }
    }
    }
    public void paint(Graphics g)
    {
    g.setFont(font);
    g.setColor(Color.red);
    g.drawString(s.substring(0,x_cha),8,50);
    }
    }
      

  4.   

    ......APPLET没有main方法,但是要有个init()方法,里面是初始化的.然后就可以启动了