swt做GUI,窗口显示的内容隔短时间刷新,应该怎么实现? 用swt做一个单机程序,已经建了一个shell,上面添加了一个文本框,我希望文本框的内容过一段时间换一下,比如过500毫秒;更换几次后,给出一个输入框,让用户输入一些反馈。以前没有做过这方面的开发,希望各位给个思路,或代码片段。非常感谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Timer 和 TimerTask看看这两个类 我用Time实现过一个,在Timer里修改Text控件,但是报Invalid thread access错。这是我的代码片段timer.schedule( new TimerTask() { int i=0; public void run() { helloworldText.setText("hello"+i); i++; if(i==10) timer.cancel(); } }, 0, 500);//timer是我在类里定义的静态Timer属性 import java.util.Timer;import java.util.TimerTask;public class sql{ static Timer timer=new Timer(); public static void main(String[] args) { timer.schedule(new task(),0,100); } static class task extends TimerTask{ int i=0; public void run() { System.out.println(i++); if (i==10) { timer.cancel(); } } }}我这样写没错 Invalid thread access错是因为SWT禁止非本体线程对控件的显示内容进行更改,如果你必须这样做则需要调用以下方法,在该方法内对控件进行操作:Display.getDefault().syncExec( new Runnable() { public void run() { //do your job } });定时器我是这么写的,供你参考:timer = new Timer( CAPTURE_PER_MILLISECOND, new ActionListener() { public void actionPerformed(ActionEvent evt) { Display.getDefault().syncExec(new Runnable() { public void run() {} } } });timer.start(); java 中怎么清除系统剪切版中的内容 JAVA这句话怎么解释 求教SCJP参考书上的一个问题 jre版本 myeclipse中使用泛型的问题 蔡鸟的菜问题 : 控制小数点后的位数 关于socket编程方面的问题,急!! 这个程序是随机抽取手机号码,要求不重复,在线等待,急急急急急 sql server 关于java串口通信的rxtx包 ireport总是多出一个空白页 如何让 jar 开机自动运行
看看这两个类
这是我的代码片段
timer.schedule(
new TimerTask() {
int i=0;
public void run() {
helloworldText.setText("hello"+i);
i++;
if(i==10) timer.cancel();
}
}, 0, 500);//timer是我在类里定义的静态Timer属性
import java.util.TimerTask;
public class sql
{
static Timer timer=new Timer(); public static void main(String[] args) {
timer.schedule(new task(),0,100);
}
static class task extends TimerTask{
int i=0;
public void run()
{
System.out.println(i++);
if (i==10)
{
timer.cancel();
}
}
}
}我这样写没错
是因为SWT禁止非本体线程对控件的显示内容进行更改,如果你必须这样做
则需要调用以下方法,在该方法内对控件进行操作:
Display.getDefault().syncExec(
new Runnable()
{
public void run()
{
//do your job
}
});定时器我是这么写的,供你参考:
timer = new Timer(
CAPTURE_PER_MILLISECOND,
new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
Display.getDefault().syncExec(new Runnable()
{
public void run()
{}
}
}
});
timer.start();