2012-10-14 41 views
3

我正在創建一個創建門(AND,OR等)的程序,但是當我想創建一個SR鎖存器時,我需要使用一個計時器。如何使用Timer isRunning?

所以當這個方法(inputChanged)被調用時,它應該檢查定時器是否正在運行。如果它正在運行,它應該什麼也不做。 (這是我被卡住了...) 否則,它應該檢查新值是否偏離舊值(getOutputValue())。

如果存在,它應該保存新的值並在一小段延遲後發送一箇中斷信號。我使用setInitialDelay()作爲初始延遲,但我不知道如何發送中斷信號。

我不知道我做錯了這個代碼,因爲它不是工作壓力太大以及....

public void inputChanged() 
{ 
    timer = new javax.swing.Timer(delay, new ActionListener() 
    { 
     public void actionPerformed(ActionEvent event) 
     { 
      // Check if timer is running. 
      if(timer.isRunning()) 
      { 
       boolean value = calculateValue(); 

       // new Value   old Value 
       if(calculateValue() != getOutputValue()) 
       { 
        timer.setInitialDelay(delay); 
        timer.stop(); 
       } 
       outputChanged(value); 
      } 
     } 
    }); 
    timer.start(); 
} 

回答

2

代碼的邏輯是逆向你寫什麼。你說如果時間在流逝,那麼你不想做任何事情。但是,如果定時器沒有運行,代碼將不會執行任何操作。只是簡單的!timer.isRunning()應該適用於適當的線。

相關問題