【发布时间】:2014-01-27 09:34:30
【问题描述】:
我有一个 javax.swing.Timer 需要在两个 int 之间的随机时间之后运行一个方法。
创建对象后,对象需要保持“运行”(如在计时器中继续执行该操作)。
我尝试过的:
private int minimal = 30;
private int Max = 1000;
int randomTimeOutput;
Random randomTime;
Timer timerRunAction
public Object()
{
randomTime = new Random();
randomTimeOutput = (minimal +
randomTime.nextInt(Max - minimal + 1));
timerRunAction = new Timer(randomTimeOutput, this);
timerRunAction.start();
}
private void doSomething()
{
//Do something
}
private void actionPerformed(ActionEvent e)
{
dosomething();
}
我已更改名称以使其更具可读性 Object 不是真正的原因。
但是发生的情况是:计时器在随机时间运行,但它在第一次运行的随机时间继续运行。
所以每次运行结束后它都不会改变时间。
我怎样才能让它发生,所以它每次都会以不同的时间运行?
【问题讨论】:
-
你使用的是
javax.swing.Timer还是java.util.Timer? -
你在哪里使用Timer方法来改变它的延迟?为什么不使用这些方法?
-
@HovercraftFullOfEels 这就是我所拥有的,一切都在工作,除了它没有改变时间。
-
你的
actionPerformed()是private。我认为它必须是public才能让您的Timer调用该方法。