前段时间的工作里需要做个 GUI 工具,要用 Java 里的 SWT。以前完全没接触过 SWT,就玩过一阵 SWING。其他没什么,就是多线程的时候似乎比 SWING 麻烦点,后台干活跟窗口里面的进度条之间的配合碰到了问题。google 了一下,看了1,2,3等网页,克服代码里碰到的问题后,总结如下:
1.干活是一个线程,UI是另一个线程,不要在干活的线程里牵扯到UI的操作。可以在干活的线程里用设boolean类型变量的方法,通知UI线程做相应变化。
2.使用Display.syncexec/asyncexec(Runnable) 来执行非主线程的代码。
大概的样子就是如下 } }
public work() {
aaa().start();
bbb().start();
return new Thread() {
public void run() {
/* 干活 */
}
};
return new Thread() {
public void run() {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
/* UI操作 */
}
});
}
};
}
Topic:
技术
评论
t最近很少露面呀
这个bt的blog,最近t很少发文呀。gui?可以试试Qt, PyQt,hoho
装修,很充实啊
装修,很充实啊
需要调项目里写好的许多方法,所以用 Java 了。否则抓机会学学 python 的 gui 也挺好