我知道如何实际将元素添加到 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/