gpt4 book ai didi

java - 为什么会发生 EDT 违规?

转载 作者:行者123 更新时间:2023-11-29 08:18:09 27 4
gpt4 key购买 nike

我开始使用 CheckThreadViolationRepaintManager 来检测 EDT 违规。

它提示:

partner = getParameter("partner",generatePartnerSelectionPanel(),Design.partnerSelectionDuration);

因为它不喜欢generatePartnerSelectionPanel() 因为它不喜欢这个方法中的JPanel panel = new JPanel();。但我无法找出为什么会出现问题。

更详细地说,generatePartnerSelectionPanel() 生成了一个 JPanel(我不是在 EDT 中执行的),然后在 getParameter 中我将 JPanel 添加到主 JFrame我在 EDT 中执行此操作(使用 invokeLater)。

那么,为什么会有问题呢?

最佳答案

违反 EDT 并不意味着一定确实出了问题,这意味着您尝试在 EDT 以外的线程上执行 GUI 相关操作(某种情况可能 出错)。

创建新的 Swing 组件包含在“做一些与 GUI 相关的事情”中,因此会发出有关违规的警告。

forum has quite a discussion为什么不建议在其他线程上创建 Swing 组件。

关于java - 为什么会发生 EDT 违规?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2727841/

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