【发布时间】:2011-11-21 20:31:12
【问题描述】:
我开发了一个用于创建和提取档案的 Java 应用程序 - 例如 WinRAR。您可以使用多线程同时创建多个存档。最近,我想在每次创建时在新的 JFrame 中以 JProgressBar 的形式在存档创建期间添加信息状态。
但我的问题是在新状态框架和创建存档的线程中生成信息。这就是为什么我在存档线程中创建 JFrame 来更新当前进度条的原因。
但是就像我可以在不同的信息源和您的答案/cmets 中阅读它一样,它不利于 Java Swing 和性能;我无法在 EDT 之外的其他地方创建摇摆对象。
但是,我应该如何解决我的问题?如何在我的归档文件的写入与其状态 JFrame(使用 JProgressBar)之间建立通信?
编辑:
我实现了 SwingWorker 来管理我的应用程序中的 GUI。现在已经完成了,我还有一个问题:
使用 SwingWorker,我如何通过状态框架按钮上的事件来处理后台任务? (例如:暂停或停止压缩。)
【问题讨论】:
标签: java multithreading swing user-interface event-dispatch-thread