2010-11-26 53 views
2

这种情况是这样的:我有JFrame的Java swing应用程序。有textarea你可以键入的东西,然后你在另一个textarea的搜索结果,当你选择其中一个结果时,有一个按钮“下载”。问题来了。当你点击“下载”时,应用程序应该显示下载文件完整性的信息。我已经用一个名为DownloadManager的类来扩展Thread,它可以在一段时间内更新信息。不过,我担心可能会出现同步问题。有没有线程更新这种动态信息的标准方式? Java swing类中是否存在主循环或类似的东西?你怎么做呢?哪个更好 - 主循环还是单独的线程?

回答

2

任何更新Java中的GUI都应该由GUI事件分派线程完成。要强制在此线程中运行方法,您需要使用SwingUtilities.invokeLater。做其他事情可能会导致您的GUI挂起,而不是更新或其他奇怪!

这是一个描述它比我更好的一个很好的教程:

http://www.javamex.com/tutorials/threads/invokelater.shtml

2

没有有没有这么多的问题同步。如果在Swing中使用后台线程考虑使用SwingWorker

相关问题