我想在按下一个"开始"按钮后程序开始不断地处理某事,当"停止"按钮后就终止处理.
如,按"开始"按钮后,程序就不断地加1,按"停止"按钮后就停止加1,按"继续"按钮后又可以接着加1.
现在的问题是:按下"开始"按钮后就进入了死循环的,不能再按其它按钮了,请问各位都怎么处理这种情况?
如,按"开始"按钮后,程序就不断地加1,按"停止"按钮后就停止加1,按"继续"按钮后又可以接着加1.
现在的问题是:按下"开始"按钮后就进入了死循环的,不能再按其它按钮了,请问各位都怎么处理这种情况?
Do you know "Thread"?
private int currentNumber = 0;
private boolean stopFlag = true;
/**
* 数量递增
*/
private synchronized void addNumber() {
currentNumber ++;
}
/**
* 构造
*/
public NumberControl() {
// 新启线程
Thread thread = new Thread(new Runnable(){
public void run() {
if(stopFlag) return;
addNumber();
}
});
thread.run();
}
/**
* 取得当前数量
* @return
*/
public int getCurrentNumber() {
return currentNumber;
}
/**
* 开始增加数量
*/
public void startAdd() {
stopFlag = false;
}
/**
* 停止增加数量
*/
public void stopAdd() {
stopFlag = true;
}
}
构造函数,改成下面:public NumberControl() {
// 新启线程
Thread thread = new Thread(new Runnable(){
public void run() {
while(!stopFlag){
addNumber();
}
}
});
thread.run();
}