您的位置:首页 > 其它

SWT 界面时钟显示

2007-06-29 11:06 169 查看
在SWT上显示时钟或者做定时器操作,如果直接使用java.util.timer操作,会显示线程错误。原因如下:
Widget.java中有以下检查线程一致性的代码




protected void checkWidget () ...{


Display display = this.display;


if (display == null) error (SWT.ERROR_WIDGET_DISPOSED);


if (display.thread != Thread.currentThread ()) error (SWT.ERROR_THREAD_INVALID_ACCESS);


if ((state & DISPOSED) != 0) error (SWT.ERROR_WIDGET_DISPOSED);


}

因此,由于Timer启动的TimerTask进程与display进程不一致,故会抛出thread invalid access错误。
以下是在界面显示时钟的办法。其它定时器操作请参考以下以下代码做修改:


int time=1000;




Runnable showTime = new Runnable() ...{




public void run() ...{


Date date = new Date();


DateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");


label.setText(dateFormat.format(date));//已定义的用于显示时钟的label


display.timerExec(time, this);


}


};




display.timerExec(1000,showTime);//你的swt程序的display
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: