gpt4 book ai didi

java - 奇怪的 EDT 违规,不包含我的代码

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:01 25 4
gpt4 key购买 nike

模拟器中显示了一个堆栈跟踪,我可以使用以下简单的形式重现它

public class EdtProblemForm extends Form {
public EdtProblemForm() {
setLayout(new TextModeLayout(2, 1));
add(firstName);
add(lastName);
}

private final TextComponent firstName = new TextComponent().label("First Name");
private final TextComponent lastName = new TextComponent().label("Last Name");
}

所需要做的就是单击第一个字段并使用 TAB 键切换到下一个字段(单击导致没有堆栈跟踪)。

没有我的处理程序,没有我启动或使用的线程,堆栈跟踪也没有提及我:

com.codename1.impl.javase.JavaSEPort$EDTViolation: EDT Violation Stack!
at com.codename1.impl.javase.JavaSEPort.checkEDT(JavaSEPort.java:772)
at com.codename1.impl.javase.JavaSEPort.editString(JavaSEPort.java:4412)
at com.codename1.impl.javase.JavaSEPort$56.run(JavaSEPort.java:4397)
at com.codename1.impl.javase.JavaSEPort$2Listener.actionPerformed(JavaSEPort.java:4620)
at com.codename1.impl.javase.JavaSEPort$2Listener.endEditing(JavaSEPort.java:4718)
at com.codename1.impl.javase.JavaSEPort$2Listener$3.run(JavaSEPort.java:4712)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

这种情况总是会发生,我在问这是我需要经历的事情还是可以修复或避免的事情。

最佳答案

这只会发生在模拟器上,因为它在 TAB 键处理中违反了 EDT。有时,我们会以相对安全的方式违反 EDT,以保持绩效不变。不幸的是,这会创建 EDT 违规日志。

我们宁愿有这样的“误报”,但也会发现真正的问题,以防您遇到这些问题。因此,如果不涉及您的代码,这可能不是问题。

关于java - 奇怪的 EDT 违规,不包含我的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146451/

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