SWING中如何实现滚动文字效果,就象HTML中的滚动文字

解决方案 »

  1.   

    将文字做成JLabel,放到一个JPanel中,该JPanel使用null的布局管理,启动一个线程,线程中加一个循环,循环中不停的改变JLabel在JPanel中的位置。直接将文字画到JPanel中,启动一个线程,线程中加一个循环,循环中不停的重画文字,当然位置是逐渐移动的。
      

  2.   

    看看这段代码:
    import java.awt.*;
    import java.applet.*;
    public class MoveString extends Applet implements Runnable
    {
    Font f=new Font("TimesRoman",Font.BOLD,56);
    Thread runner;
    int x=500;
    public void start()
    {
    if(runner==null)
    {
    runner=new Thread(this);
    runner.start();
    }
    }
    public void stop()
    {
    if(runner!=null)
    {
    runner.stop();
    runner=null;
    }
    }
    public void run()
    {
    while(true)
    {
    x-=10;
    repaint();

    try
    {
    Thread.sleep(1000);
    }
    catch(InterruptedException e)
    {}
    if(x==-500)
    x=500;
    }
    }
    public void paint(Graphics g)
    {
    g.setColor(Color.yellow);
    g.fillRect(0,0,500,600);
    g.setColor(Color.blue);
    g.setFont(f);
    g.drawString("滚动的文字",x,50);
    }
    }