如题, 用SWT实现 动态Label.谢谢.
解决方案 »
- 一道java原理题(一道简单的面试题,高手与低手的区别就在这里)
- 类和接口的访问权限
- 为什么我编了一个很小的软件,别人用了老死机啊?
- 大家给我讲解一下吧。讲解一下 jsp,封装,Servlet,JavaBean的关系是什么呢
- 怎么会出现这个错误的?麻烦看看一段小程序...
- 你知道我在等你吗?!!!!不行就是不行 您千万别笑我 嘻嘻
- 为什么Jbuilder编译时会删除被调用的class文件?
- 关于JTABLE 的问题,大家能帮忙看一下吗,我挺急 谢谢大家
- 3请问如何同屏显示多内码?
- 这段java web代码比较老了,我对这个类型不熟悉,有没有高手帮忙改一下,jdk1.7以上支持
- 新闻这样的东西怎么转成中文啊??
- 我是JAVA菜鸟,我下了eclipse.可是里面全是jar文件,我找不到安装文件,请问要我怎么装eclipse.
你可以吧一段长的文本放到一个String里,然后不断地截取固定长度的字符串,往后移动,然后显示在Label里面。这个是方法一。
方法二就是用Composite对象,里面放置一个长度大于Comp~对象长度的Label。
然后移动Label。
两个方法都不错,第二个可能文字的移动要平稳一些。
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看看吧