你如何创建一个立即触发的javax.swing.Timer,然后每隔t毫秒?

Tho*_*ens 4 java swing timer javax.swing.timer

现在,我的代码看起来像这样:

Timer timer = new javax.swing.Timer(5000, myActionEvent);
Run Code Online (Sandbox Code Playgroud)

根据我所看到的(以及JavadocsTimer),计时器将等待5000毫秒(5秒),触发动作事件,等待5000毫秒,再次触发,依此类推.但是,我试图获得的行为是计时器启动,事件被触发,计时器等待5000毫秒,再次触发,然后等待再次触发.

除非我错过了什么,否则我没有办法创建一个不会在开始之前等待的计时器.是否有一种良好,干净的方式来模仿这个?

asa*_*n74 10

您只能在构造函数中指定延迟.您需要更改初始延迟(触发第一个事件之前的时间).您不能在constuctor中设置,但可以使用Timer类的setInitialDelay方法.

如果您在第一次射击前无需等待:

timer.setInitialDelay(0);
Run Code Online (Sandbox Code Playgroud)