关注使用所有者框架异步打开JDialog

时间:2015-11-01 17:47:16

标签: java multithreading swing

我已经读过所有Java swing都不是线程安全的。

我正在异步加载来自远程站点的数据,并在加载后在对话框中显示它。我担心的是,如果swing不是它声称的线程安全,我担心当我设置对话框的所有者框架时会出现问题,这是一个不同的主题。

如果我的问题是正确的,我该如何同步打开对话并避免任何问题?

1 个答案:

答案 0 :(得分:2)

必须在事件调度线程(EDT)上创建和更新Swing组件。

使用单独的线程加载数据时,您可以使用SwingUtilities.invokeLater(...)创建对话框及其组件。

或另一种选择是使用SwingWorker。当工作人员的后台处理完成后,您的代码就可以在EDT上自动执行。

阅读Concurrency上Swing教程中的部分,了解更多信息和工作示例。

相关问题