求一SWT实现的滚动字幕效果程序

windcrazy 2006-11-03 11:59:39
如题, 用SWT实现 动态Label.谢谢.
...全文
241 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
haisenmai 2006-11-03
  • 打赏
  • 举报
回复
package csdn.oct;

import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.io.*;
import java.util.*;
import java.net.*;

import javax.swing.JFrame;
import javax.swing.JTextPane;

public class Demo
{
String[] getStr(String s,int length){
String newstr = s;//length is the lable's lenght
String[] slist = new String[length];
if(length>s.length()){
for(int i=0;i<length-s.length();i++){
newstr +=" ";
}
//System.out.println(newstr+"@");
slist[0] = newstr;
for(int i=1;i<length;i++){
slist[i] = slist[i-1].substring(1)+slist[i-1].charAt(0);
System.out.println(slist[i]);
}
}
return slist;
}

public static void main(String args[]) throws InterruptedException
{
int totallength=23;//要滚动的字符串+后面的空格的长度 必须大于字符串的长度
String lablestr="I love this game!!!";//要滚动的字符串
Frame j = new Frame();
Label l = new Label(lablestr);
j.add(l);j.setVisible(true);j.pack();
Demo d = new Demo();
String[] s = d.getStr(lablestr,totallength);
while(true){
for(int i = 0; i < s.length; i++){
l.setText(s[i]);
Thread.sleep(100);
}
}
}

}
//随便写了下 lz看看吧
healer_kx 2006-11-03
  • 打赏
  • 举报
回复
对,就用Label。关键是里面的字你要处理一下,

在一个Timer里面,不管地改Label的Text了。
你可以吧一段长的文本放到一个String里,然后不断地截取固定长度的字符串,往后移动,然后显示在Label里面。

这个是方法一。


方法二就是用Composite对象,里面放置一个长度大于Comp~对象长度的Label。
然后移动Label。


两个方法都不错,第二个可能文字的移动要平稳一些。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧