【发布时间】:2013-09-28 01:30:31
【问题描述】:
情况如下:我的代码从 Internet 下载文件,同时显示其大小和文件名。
问题是,当我下载该文件时,该 JTextArea 中没有任何内容出现,并且在下载完成之前,框架就像“冻结”一样。
我什至尝试使用 swingworker 类放置进度条(几天前我问过请求信息,但我不明白如何在我的代码中“集成”你之前给我的 swingworker 方法。有人告诉我使用 Matisse在那种情况下根本不推荐。所以我不能使用 swingworker。
我一直在研究,我认为适合我的方法是使用线程。有或没有进度条。只是找简单的代码,我是初学者,谢谢
【问题讨论】:
-
什么线程正在运行您的 GUI 代码?是事件调度线程,还是主线程?如果是后者,就让它成为前者。
-
在您展示一些工作、发布请求和下载文件的代码之前,没有人会提供帮助,我们会建议...
-
你需要学会使用一个SwingWorker,纯粹而简单。从一个简单的线程睡眠示例开始,直到你让它工作,或者直到你可以在这里展示一个小例子。尽管如此,除非您提出更好(即可回答)的问题,否则我怀疑任何人都可以为您提供更多帮助。
-
1) 您知道您应该使用 SwingWorker,并且您确实应该发布您使用它的尝试。否则我们怎么能猜到你可能做错了什么? 2) 同样,当尝试使用像 SwingWorker 这样复杂的新工具时,首先尝试解决一个简单的问题,而不是使用您的文件下载代码。让 SwingWorker 正常工作,然后在您更大的程序中实施它。分而治之。
-
你需要看懂Concurrency in Swing
标签: java multithreading swing user-interface matisse