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();
}
}
怎么能逐步显示文字(一个一个字的显示),在线等,谢了?
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()方法就可以了
这是为什么?
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);
}
}