我的应用程序由两个类文件组成,我们将它们称为A和B.A是主要文件 - 执行的文件和jar文件的主类.在AI中定义一个JFrame,我向其添加了两个JPanel:其中一个由JButtons和JLabel组成,另一个是图形的,并在B(B extends JPanel)中实现.
在BI中有一种方法可能需要一段时间,所以我希望向用户提供有关正在进行的过程的信息; 也就是说,我想告诉用户剩下多少计算量.我想通过更新A类中的JLabel来做到这一点.但是,当我尝试它时,我得到JLabel只在方法完成后更新,即不是看到它从0%运行到100%我只看到100%,一直.
我不认为我有任何相关的代码片段可以告诉你,但如果有什么东西要你发帖,请告诉我.
我检查了类似的问题,但在我看来,他们问了一些完全不同的东西.
谢谢,
罗恩.
你的是一个线程问题.您长时间运行的进程占用主Swing线程EDT,阻止任何绘图,组件更新或用户交互.您需要在后台线程中执行长时间运行的进程,例如SwingWorker对象提供的进程.这样做,您的GUI将变得更加响应.
有关此重要主题的更多信息,请查看Swing中的Concurrency.
如果您需要更具体的帮助,则需要提供更多信息和代码.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |