【发布时间】:2012-07-02 04:19:46
【问题描述】:
我正在编写一个应用程序,它解析XML 文件(连续)并在GUI 中显示数据(Swing)。 ParseThread 在CoreProject 中,GUI 在GUIProject 中。
ParseThread 的开头通过 ItemListener 连接到 JCheckBoxMenuItem。 setSelected() 的值是在添加到菜单后直接设置的。此时GUI不包含ParseThread需要显示解析数据的Component。
我的解决方案是,ParseThread 应该等到 GUI 完全构建。
我想到了 EventQueue 之类的东西,但我不知道如何编写代码。
【问题讨论】:
-
GUI 准备好后为什么不直接启动线程?
-
同意 -- 我不确定您的确切问题是什么,但听起来您可以使用 SwingWorker 进行后台处理,并添加 PropertyChangeListener 以通知 GUI 线程的进度。跨度>
-
是的,在它需要运行的所有数据(直接)存在之前,我看不到创建线程的任何意义。也就是说,GUI 组件无论如何都不应该属于该类别 - 如果 GUI 以通常的方式通过消息传递进行通信,则不应发生此问题?
标签: java multithreading swing user-interface ready