我想在按下一个"开始"按钮后程序开始不断地处理某事,当"停止"按钮后就终止处理.
如,按"开始"按钮后,程序就不断地加1,按"停止"按钮后就停止加1,按"继续"按钮后又可以接着加1.
现在的问题是:按下"开始"按钮后就进入了死循环的,不能再按其它按钮了,请问各位都怎么处理这种情况?

解决方案 »

  1.   

    Question:
    Do you know "Thread"?
      

  2.   

    public class NumberControl {
    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;
    }
    }
      

  3.   

    上面错了一点: 
    构造函数,改成下面:public NumberControl() {
        // 新启线程
        Thread thread = new Thread(new Runnable(){
            public void run() {
               while(!stopFlag){
                  addNumber();
               }
            }
        });
        thread.run();
    }