java 停止程序执行

现有一个tt类,类中有一个start方法和restart方法我想在主函数中先调用start方法,然后当监听到一个事件的时候停止start的执行再通过restart重新执行... 现有一个tt类,类中有一个 start方法和restart方法
我想在主函数中先调用start方法,然后当监听到一个事件的时候停止start的执行 再通过restart重新执行start
问题是 当我监听到事件后 有办法来停止此时正在执行的start吗?

class tt{
void start(){
while(true){
try{
Thread.sleep(1000);
}catch(InterruptedException e) {}
System.out.println(1);
}
}
void restart(){
start();
}
public static void main(String args[]){
tt t=new tt();
t.start();

//此处写一个方法停止start的执行

t.restart();//重新执行start()
}
}
展开
 我来答
韦涵涵
2009-04-25 · TA获得超过3892个赞
知道大有可为答主
回答量:1034
采纳率:100%
帮助的人:1511万
展开全部
import javax.swing.JOptionPane;

class tt {
boolean boo;
void start() {
int i = 0;
boo = true;
while (boo) {
try {
i++;
judge(i);// 判断是否结束运行
Thread.sleep(1000);
} catch (InterruptedException e) {
}
System.out.println(i);
}
}

void restart() {
start();
}
//每执行5次判断是否结束执行
void judge(int i) {
if (i % 5 == 0) {
int flag = JOptionPane.showConfirmDialog(null, "确定要停止?");
if (flag == 0) {
boo = false;
}
}
}

public static void main(String args[]) {
tt t = new tt();
t.start();

// 此处写一个方法停止start的执行

t.restart();// 重新执行start()
}
}

已经给楼主调试并成功运行!

祝楼主早日成功哈!

如果觉得不好也不要见怪噢。。。

备注:接毕业设计,价钱面议!
在天湖山弹吉他的米老鼠
2009-04-27 · TA获得超过2064个赞
知道小有建树答主
回答量:1546
采纳率:100%
帮助的人:1032万
展开全部
如果你想控制线程的话 个人建议你最好启动两个线程 一个是用来执行操作的 另一个则是用来控制另外一个线程的 当执行操作的线程停止之后 你可以通过另外一个线程来唤醒该线程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪过了无痕
2009-04-25 · TA获得超过234个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:269万
展开全部
你可以定义一个属性
boolean flag=true;
void start(){
flag=true;
while(flag){ }
}
void restart(){
flag=false;
start();
}

不过此时就应该要考虑到线程同步的问题了

参考资料: `

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heruyi
2009-04-25 · TA获得超过558个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:177万
展开全部
赞同1楼的思路.
问题补充:
class tt{
private boolean flag = true;
void start(){
while(flag){
try{
Thread.sleep(1000);
}catch(InterruptedException e) {}
System.out.println(1);
}
}
void restart(){
flag = true;
System.out.println("restart");
start();
}

void stop(){
flag=false;
System.out.println("stop");
}

public static void main(String args[]){
tt t=new tt();
t.start();

//此处写一个方法停止start的执行
t.stop();

t.restart();//重新执行start()
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式