首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
Java
J2SE / 基础类
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
j2se中SWT高手请进!关于停止按钮的实现
[已结贴,结贴人:zjqwll]
加为好友
发送私信
在线聊天
zjqwll
等级:
可用分等级:
长工
总技术分:
35
总技术分排名:
145301
揭贴率:
-55.56%
发表于:
2008-08-22 13:27:15
楼主
在SWT开发中,我开发一个程序,里面有2个按钮,一个搜索,
一个是停止,搜索按钮事件中使用了一个while循环进行搜索。
我想实现的效果是:点击停止按钮的就终止while循环,然后把
搜索结果显示在另外一个窗口。实际上我已经实现搜索和显示的
功能,但是在点击停止的时候就会出现程序无响应,即程序死掉
的情况,也就是会所我无法实现停止这个功能。
protected void createContents() {
shell = new Shell();
shell.setSize(500, 375);
shell.setText("程序测试");
final Button button = new Button(shell, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {]
while(...){
...//这里是循环体
}
}
});
button.setText("搜索");
button.setBounds(156, 144, 58, 23);
final Button button_1 = new Button(shell, SWT.NONE);
button_1.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {]
//这里需要写停止的事件程序代码
}
});
button_1.setText("停止");
button_1.setBounds(313, 130, 44, 23);
//
}
问题点数:
20
回复次数:
16
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ilysony
for Java
等级:
可用分等级:
富农
总技术分:
1154
总技术分排名:
17637
发表于:
2008-08-22 13:29:27
1
楼 得分:
0
没有用过SWT ,,路过帮顶
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zjqwll
等级:
可用分等级:
长工
总技术分:
35
总技术分排名:
145301
发表于:
2008-08-22 13:57:09
2
楼 得分:
0
有没有高手啊 ,在线等。。。。55555~~~
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lude8880
当时可能来
等级:
可用分等级:
乞丐
总技术分:
653
总技术分排名:
27584
发表于:
2008-08-22 14:00:42
3
楼 得分:
0
这样要用到多线程
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
thinkisbest
Jkmcc
等级:
可用分等级:
贫农
总技术分:
223
总技术分排名:
55804
发表于:
2008-08-22 14:57:26
4
楼 得分:
0
对.是要用到多线程.当点击停止的时候,应该阻塞搜索的那个线程.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
SARA520
SARA520
等级:
可用分等级:
贫农
总技术分:
215
总技术分排名:
57108
发表于:
2008-08-22 15:00:15
5
楼 得分:
0
很明显
多线程
一个线程进行搜索
另一个线程监听是否按下停止按钮
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zjqwll
等级:
可用分等级:
长工
总技术分:
35
总技术分排名:
145301
发表于:
2008-08-23 12:43:41
6
楼 得分:
0
引用 5 楼 SARA520 的回复:
很明显
多线程
一个线程进行搜索
另一个线程监听是否按下停止按钮
具体该怎么做呢,能给个例子吗?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zjqwll
等级:
可用分等级:
长工
总技术分:
35
总技术分排名:
145301
发表于:
2008-08-23 12:44:45
7
楼 得分:
0
SWT线程怎么搞啊
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
AWUSOFT
CSDN专用QQ:836930375;QQ群:64567086.想找个女朋友,在深圳的.
等级:
可用分等级:
中农
总技术分:
15514
总技术分排名:
917
发表于:
2008-08-23 19:40:12
8
楼 得分:
0
不需要线程啊.你多加一个变量啊.如果这个变量是true+其它条件才继续循环.你另一个按钮就用来改变这个变量 的值,让它为false嘛.但是注意第一次使用的时候要让它还是true哦,要不然你就搜索不了.思路大概这样
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zjqwll
等级:
可用分等级:
长工
总技术分:
35
总技术分排名:
145301
发表于:
2008-08-24 12:10:48
9
楼 得分:
0
引用 8 楼 AWUSOFT 的回复:
不需要线程啊.你多加一个变量啊.如果这个变量是true+其它条件才继续循环.你另一个按钮就用来改变这个变量 的值,让它为false嘛.但是注意第一次使用的时候要让它还是true哦,要不然你就搜索不了.思路大概这样
这样我做了的啊 ,是不行的啊
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zjqwll
等级:
可用分等级:
长工
总技术分:
35
总技术分排名:
145301
发表于:
2008-08-24 12:14:05
10
楼 得分:
0
问题是停止按钮都点不了啊
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
BeckhamXiao
Beckham
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
313963
发表于:
2008-08-24 22:07:38
11
楼 得分:
2
用多线程,如果是不停的while那个close按钮没有机会响应直到while退出,你可以加点调试代码验证一下。
所以你要一个按钮的监听器启动一个新线程搜索,另外停止的监听器负责终止那个线程
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zjqwll
等级:
可用分等级:
长工
总技术分:
35
总技术分排名:
145301
发表于:
2008-08-25 16:08:25
12
楼 得分:
0
引用 11 楼 BeckhamXiao 的回复:
用多线程,如果是不停的while那个close按钮没有机会响应直到while退出,你可以加点调试代码验证一下。
所以你要一个按钮的监听器启动一个新线程搜索,另外停止的监听器负责终止那个线程
楼上的大虾可以具体点吗?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
leaderbird
南粤极峰
等级:
可用分等级:
贫农
总技术分:
94
总技术分排名:
93735
发表于:
2008-08-25 21:48:35
13
楼 得分:
5
嗯.上面有人提到用一个变量来判断是否需要while退出.这个应该比较容易实现.但还是觉得有点不对.java语句是从上到下执行的等到一个动作去实现修改变量的值的时候其实整个while已完成了;所以估计还是得用多线程来实现.这个应该跟SWT没关的
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
deepbrain
该用户很懒,没有设置昵称
等级:
可用分等级:
长工
总技术分:
2
总技术分排名:
281888
发表于:
2008-08-25 21:58:36
14
楼 得分:
8
搜索
final Button button = new Button(shell, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {]
Runnable search=new Runnable() {
public void run() {
while(!finished){
搜索的过程....
}
}
}
new Thread(search).start();
}
});
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ysljf
该用户很懒,没有设置昵称
等级:
可用分等级:
短工
总技术分:
3
总技术分排名:
273671
发表于:
2008-08-25 22:45:19
15
楼 得分:
5
肯定要多线程。。。。。。。
可以用TheadGroup..
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zjqwll
等级:
可用分等级:
长工
总技术分:
35
总技术分排名:
145301
发表于:
2008-08-26 17:29:38
16
楼 得分:
0
引用 13 楼 leaderbird 的回复:
嗯.上面有人提到用一个变量来判断是否需要while退出.这个应该比较容易实现.但还是觉得有点不对.java语句是从上到下执行的等到一个动作去实现修改变量的值的时候其实整个while已完成了;所以估计还是得用多线程来实现.这个应该跟SWT没关的
恩,我也这样认为的
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友