java - 如何从另一个 JPanel/JFrame/etc 添加 String JList 元素?

标签 java swing concurrency jlist swingworker

我知道如何实际将元素添加到 JList 本身,但我不确定如何在更新实际发生时更新我的​​事件日志(它使用 JList 和 DefaultListModel)。好像我的应用程序卡住了,然后在它结束时显示所有条目。请帮忙?

最佳答案

我 100% 确定您遇到了 Swing 并发问题,您将 Swing 事件分派(dispatch)线程或 EDT 与长时间运行的进程捆绑在一起。问题在于 Swing 偶数线程负责执行所有 Swing 绘图和用户交互。如果它与一些长时间运行的进程(如文件或数据库输入或输出)捆绑在一起,那么它就无法履行其职责,整个 GUI 就会卡住。解决方案是使用一个后台线程,例如 SwingWorker,这样长时间运行的进程就不会占用 EDT,而是注意更新 Swing 组件,例如 JList 或其模型on美国东部时间。

请查看 Swing concurrency tutorial有关问题及其解决方案的更多详细信息。

关于java - 如何从另一个 JPanel/JFrame/etc 添加 String JList 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11378735/

相关文章:

scala - 用于聊天和类似 Twitter 的应用程序的并发程序语言

java - @interface 是什么时候在 java 中引入的?

Java:通过 HTTP 流式传输 Zipfile 的内容

java - JPanel 不显示

java - FutureTasks 和 CachedThreadPool 是如何工作的

c++ - 如何同时使用两个CameraCaptureUI(UWP/C++)

java - 读取分块文件 Netty Java

java - 设置运行tomcat的内存缓存窗口

java - Jtable 不显示图像

java - 这是最常见的情况吗?