Java 多线程和 SWING

标签 java multithreading swing

我正在开发一个基于 SWING 的多线程 Java 应用程序。

想法是创建一组后台“任务/服务”来重复执行一些任务。

我的问题是如何通过在某些条件下显示 SWING 组件来实现可以与 GUI 交互的多线程(在应用程序的较低级别)。

我知道我可以使用 SwingWorker,但使用它会使我的应用程序变得更加“面向图形用户界面”,我不想这样做,但另一方面我也不想让我的多线程类依赖于图形用户界面类。

有哪些选项在哪里?

提前谢谢你。

编辑

我忘了说这个后台任务需要一开始就启动,不能通过 GUI 启动(就像引导进程)。

最佳答案

but in the other hand I also don't want to make my multithreading classes depended on GUI classes.

使用 Observer/Listener 模式怎么样?您的后台任务由 SwingWorker 启动,可以在需要时通知其他一些组件。 @Xeon 评论为您指明了正确的方向。

个人建议:从一些解决方案开始,然后在代码变得不那么可读时不断重构。

顺便说一句。我希望您记住旧规则:Swing 组件应该只在事件调度线程上访问 ;)

关于Java 多线程和 SWING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32268852/

相关文章:

java - KStream-KStream inner join 基于匹配复合键的消息

windows - 识别特定线程使用的处理器(核心)

java - 为什么从不更改接收更改事件的通知程序

java - 如何制作每行多行的表格?

java - JAVA 中的模糊视频流区域

java - 是否可以从文本文件中读取多行并将其导出到各自的文本字段?

c - C中动态分配内存的互斥量

javascript - Node 集群 : Why are all requests handled by only one worker?

java - 将 JPanel 转换为 png 或其他图像文件

java - 将外部类中的新数据插入到 Jtable 中