当前位置: 首页 > 面试题库 >

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

贲凌
2023-03-14
问题内容

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

Timer timer = new javax.swing.Timer(5000, myActionEvent);

根据我所看到的(以及该类的JavadocsTimer),计时器将等待5000毫秒(5秒),触发action事件,等待5000毫秒,再次触发,依此类推。但是,我要获取的行为是计时器已启动,事件已触发,计时器等待5000毫秒,再次触发,然后等待再次触发。

除非我错过了任何事情,否则我不会找到一种创建不会在触发前等待的计时器的方法。有没有一种很好的,干净的方法可以模拟这一点?


问题答案:

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

如果您无需等待就可以进行第一次射击:

timer.setInitialDelay(0);


 类似资料:
  • 编辑:下面是list_item_view.xml

  • 问题内容: 我正在尝试创建一些放置适当的说明性工具提示,用户可以单击这些提示以了解站点界面的工作方式。每个工具提示都有一个“下一个”链接,可通过修改类(因此更改为CSS)来切换上一个和下一个工具提示的可见性。 这是应该执行此操作的一些简化代码: 当我将此代码粘贴到控制台中时(或在页面加载时)立即调用(并正确切换类)。如果我将替换为,则按预期触发。我究竟做错了什么? 问题答案: 当您绑定事件时,您就

  • 我想用quartz scheduler使用jdbc数据存储立即执行作业~。然而,即使我使用now()或调用triggerjob进行调度,在调度和触发器fire之间也有20-30秒的延迟。 我尝试用一个简单的触发器执行作业: 并且我还尝试用调度程序触发: 下面是显示延迟的侦听器日志。

  • 我想让我的discord机器人每隔5秒发送一条消息,告诉我如果我最近在聊天中输入了什么,你已经说了。例如,如果我发送这些消息(如下)Hi(消息1,一秒钟过去了)Hi(消息2,两秒钟过去了)Hi(消息3,三秒钟过去了)Hi(消息4,5秒钟过去了)(机器人说):你说话了(记住,机器人只说了一次,不是四次) 但是,到目前为止,它处于空闲状态,不发送任何消息。我没有收到任何错误,并且bot本身运行并且在线

  • 我应该做什么来运行CRON触发器现在运行一次,并遵循表达式,例如 每5分钟触发一次。 我看了下面的帖子 https://groups.google.com/forum/#!topic/quartznet/gav10e4tj50 如果要确保作业立即运行,可以将开始时间设置为datetime.now的前一天,因此可以将代码更改为: CronTrigger触发器=新的CronTrigger(“trig”

  • > 每x秒发出一批元组(或单个元组中的字符串列表)。我如何实现这一点?我读了一些关于Storm Trident的文章,但它的似乎不允许我以特定的时间间隔批量发出元组。 如果没有新的数据进来,喷口应该怎么做?它不能阻挡线程,因为它是Storm的主线程,对吧?