Java 如何使用计时器运行?

Java 如何使用计时器运行?,java,javax.swing.timer,Java,Javax.swing.timer,我正在创建一个正在创建门(AND、OR等)的程序,但是当我想要创建SR锁存器时,我需要使用计时器 因此,当调用此方法(inputChanged)时,它应该检查计时器是否正在运行。如果它正在运行,则不应执行任何操作。(这是我被卡住了…) 否则,它应该检查新值是否与旧值不同(getOutputValue()) 如果它这样做了,它应该保存新的值,并在一个小的延迟后发送一个中断信号。我使用setInitialDelay()作为初始延迟,但我不知道如何发送中断信号 我想知道我在这段代码中做错了什么,因为它

我正在创建一个正在创建门(AND、OR等)的程序,但是当我想要创建SR锁存器时,我需要使用计时器

因此,当调用此方法(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();
}

代码的逻辑与您编写的相反。你说如果时间在流逝,那么你什么都不想做。但是,代码显示,如果计时器未运行,则不执行任何操作。只是一个简单的
!timer.isRunning()
应应用于正确的行