swing 后台操作事件长 , 界面如何显示正在等待?

echo123321 2009-07-22 04:42:30
swing 后台操作事件长 , 界面如何显示正在等待?
...全文
705 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
逆风飞翔 2012-03-06
  • 打赏
  • 举报
回复

// 执行刷新
setCursor(new Cursor(Cursor.WAIT_CURSOR));
Runnable dealRun = new Runnable() {
public void run() {
try {
_dealLocalRefresh();
} finally {
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
};
// 构造WaitDlg
com.utstar.osn.client.longtask.WaitingDialogWithTimer waitDlg = null;
if (window instanceof Dialog) {
waitDlg = new com.utstar.osn.client.longtask.WaitingDialogWithTimer(
(Dialog) window, dealRun);
} else {
waitDlg = new com.utstar.osn.client.longtask.WaitingDialogWithTimer(
(Frame) window, dealRun);
}
waitDlg.show();


这种方式可以实现swingworker相同的效果。传递一个runnable接口对象,然后和WaitingDialogWithTimer构造函数中
bonc_liuyan 2009-08-13
  • 打赏
  • 举报
回复
在执行大量业务之前 使鼠标变成等待状态,在执行完业务操作后  把鼠标变回正常状态
gongfuliang 2009-08-10
  • 打赏
  • 举报
回复
1、鼠标致盲,但是通常意义下的致盲只是假致盲,鼠标还是可以操作的。
除非你接管事件派发线程。

2、弹出Dialog、ProgressBar,但是这个用户还是可以操作的

3、使用Window代替Dialog,在Window中添加ProgressBar组件,同时设置鼠标的致盲状态。

通常这种情况需要将耗时的后台处理另起线程处理,避免阻塞事件派发线程,在异常、处理完成之后更新标志位,关闭Window。
GGMMYQL 2009-08-08
  • 打赏
  • 举报
回复
最简单的是 鼠标置忙
凡梦星尘 2009-08-06
  • 打赏
  • 举报
回复
嗯,很不错,这正是我要找的,谢谢了!
w11x22b33 2009-08-06
  • 打赏
  • 举报
回复
写一个线程,同时启动后台处理和线程等待dialog,如果后台处理结束,dialog.dispose();
lanxia39 2009-08-05
  • 打赏
  • 举报
回复
swing有个进度条控件啊
diggywang 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 echo123321 的回复:]
SwingWorker ,我会用就是前台的进度条不会,dialog是带ok按钮的,不能用
[/Quote]
[Quote=引用 6 楼 echo123321 的回复:]
网页做起来很简单的东西,swing真费尽
[/Quote]

dialog自己简单写一个(扩展自JDialog),要不要ok按钮或其它什么的完全由你自己决定,有什么不能用的?
SwingWorker最完美的就是后台执行过程中可以控制EDT线程中途的变化。如果你还不会通过SwingWorker控制进度条,那你的SwingWorker用得还不到家,好好看看我上面给的例子吧。

Swing其实很简单,比网页要简单多了。
dingoc 2009-07-23
  • 打赏
  • 举报
回复
我一般用SwingWorker,但是在以前版本的jdk中的不包含,得自己下载一个。
musecangying007 2009-07-23
  • 打赏
  • 举报
回复
学习
echo123321 2009-07-22
  • 打赏
  • 举报
回复
网页做起来很简单的东西,swing真费尽
flybird 2009-07-22
  • 打赏
  • 举报
回复
对的 dialog是需要重写的
比如有取消按钮的是可以终止的
没有取消按钮的是不能终止的。

SwingWorker 我还没用过 以前都是自己写的
回去研究一下
echo123321 2009-07-22
  • 打赏
  • 举报
回复
SwingWorker ,我会用就是前台的进度条不会,dialog是带ok按钮的,不能用
diggywang 2009-07-22
  • 打赏
  • 举报
回复
SwingWorker, 就是解决后台操作时间过长,导致用户体验差这个事情的。
对于一般不是超长时间处理,但又不想卡住界面的场景,SwingWorker是最合适的。
如果是超长时间处理,则可以在SwingWorker任务执行后,起一个modal的对话框,做一个进度条,SwingWorker也可以通过中间过程和进度条交互。

JDK6中已经包含了SwingWorker,老版本JDK的SwingWorker也可以在网上下载到,给你个简单教程http://www.javaresearch.org/article/7788.htm
echo123321 2009-07-22
  • 打赏
  • 举报
回复
dialog 是哪个组件
flybird 2009-07-22
  • 打赏
  • 举报
回复
做一个dialog 显示等待界面
后面用一个线程执行,执行完成关掉dialog就可以了。

62,615

社区成员

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

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