gpt4 book ai didi

java - JList 有速度限制吗?

转载 作者:行者123 更新时间:2023-12-01 23:52:06 24 4
gpt4 key购买 nike

我很困惑。通过大量测试,我可以确认,如果我将对象添加到连接到 JList 的 DefaultListModel 的速度比 y 更快,则 JList 就会消失。

这就是我正在做的事情:

JPanel pane = new JPanel(new BorderLayout());
JList<LogMessage> messageList = new JList<LogMessage>(dataModel.getMessageList());
pane.add(messageList , BorderLayout.CENTER);

//add pane to JFrame etc.

初始化 GUI 后,我将 100 个 LogMessage 添加到 DefaultListModel。奇怪的是,如果我执行 Thread.sleep(10); 一切都会正常。 100 个新 LogMessage 中的每一个之间。如果我不这样做 - JList 就会消失。

我尝试导出为可运行的 jar 并运行它 - 问题消失了。不过,我仍然需要能够从 Eclipse 运行我的程序。

这可能是什么原因造成的?

最佳答案

所有 Swing 组件只能在事件调度线程 或简而言之EDT 上访问。如果没有,那么您就违反了 Swing 线程原则,并且您可能会遇到像您遇到的那样的奇怪错误。

要发布要排队在 EDT 上运行的任务(即 Runnable),请使用 SwingUtilities.invokeLater

关于java - JList 有速度限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16178047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com