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

Java javax.swing.Timer是否在新线程上运行?

仉明知
2023-03-14
问题内容

我正在使用javax.swing.Timer安排和运行事件。但是它似乎冻结了GUI。只是想知道这些事件是在单独的线程上运行还是我自己必须执行。

谢谢


问题答案:

“尽管所有计时器都使用一个共享线程(由执行的第一个计时器对象创建)执行等待,但计时器的动作事件处理程序在另一个线程(事件调度线程)上执行。这意味着计时器的动作处理程序可以安全地在Swing组件上执行操作。但是,这也意味着处理程序
必须快速执行
才能使GUI保持响应。”javax.swing.Timer

重点已添加。

附录:SwingWorker仅针对这种情况而设计。特别是,它提供了一种方便的方式来卸载工作,同时定期在EDT上报告进度。



 类似资料:
  • 我有一个java maven项目,我希望使用多线程进行测试。我在src/test中有testng.xml,maven surefire插件被配置为使用它。就像这个页面一样:http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html 编辑:增加了一定的pom条目

  • 问题内容: 我有几种用注释的方法。 在应用程序上下文中,我具有以下注释驱动的设置: 问题是,有时某些方法的执行会延迟几秒钟甚至几分钟。 我假设即使某个方法需要一段时间才能完成执行,其他方法仍会执行。所以我不明白延迟。 有没有办法减少甚至消除延迟? 问题答案: 为了完整起见,以下代码显示了使用java config配置调度程序的最简单方法: 当需要更多控制时,可以实现一个类。

  • 问题内容: 据我所知,在android中,当我们运行进程时,它们始于Main线程。当我们做一些繁重的工作时,我们使用了一个新线程。如果我们想修改UI外观,可以使用在UI上运行。 有人可以向我解释这些线程的作用以及如何使用它们吗? 问题答案: UI线程和主线程只是同一线程的不同名称。 应用程序的所有UI膨胀都在此主线程上完成。之所以将“较重”的工作委派给其他线程,是因为我们不希望这些操作减慢UI的响

  • 问题内容: 我环顾了一阵子,我很惊讶地发现Gunicorn是否在Windows上运行,没有任何信息。有谁知道是这种情况,如果是,我在哪里可以找到有关它的文档? 问题答案: Gunicorn用于UNIX环境,并且与Windows不兼容。另外,有关更多信息,请参阅它的文档。

  • 当我调用foo()时,这个方法是否在单独的线程上运行?

  • 我试图在JavaFX中单击按钮时检索XLS文件并将其加载到TableView中。我使用Task类和ExecutorService来启动新线程。我需要reader类是可重用的,但是FileChooser没有出现。 这是我尝试编写一些并发代码。我想知道我做错了什么,我将如何改进我的代码,因为一切都是事件驱动的? 控制器类代码 阅读器类文件