1

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

4

1 回答 1

3

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

请查看Swing 并发教程以获取有关该问题及其解决方案的更多详细信息。

于 2012-07-07T21:23:35.100 回答