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