gpt4 book ai didi

java - 带有无用堆栈跟踪的异常

转载 作者:行者123 更新时间:2023-12-02 10:13:17 24 4
gpt4 key购买 nike

我有一个奇怪的异常,它的堆栈跟踪没有帮助或显示它来自哪里!!!!!!!!!

我搜索过它以及有用的结果,有人在使用模态 JDialog 实例并在框架所有者时使用 KeyListner 处理它时确实遇到了同样的问题alwaysOnTop 属性设置为 false 。

但就我而言,我根本没有使用任何对话框!这是异常堆栈跟踪:

Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2062)
at java.awt.Component.getLocationOnScreen(Component.java:2036)
at javax.swing.text.JTextComponent$InputMethodRequestsHandler.getTextLocation(JTextComponent.java:4643)
at sun.awt.im.InputMethodContext.getTextLocation(InputMethodContext.java:278)
at sun.awt.windows.WInputMethod$1.run(WInputMethod.java:588)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
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:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
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)

我已经有一段时间没有使用这个应用程序了,我可以确认没有人弄乱了代码,之前我在 Linux 环境中开发该应用程序时它没有抛出该异常,但是在更改了我的笔记本电脑之后Windows环境不知何故发生了这种情况。我需要尽快交付我的应用程序,这个异常有一个奇怪的事情,即每次我打开我的应用程序时它都不会抛出!我无法面对任何模式来注意它何时被抛出或会执行什么具体操作。我想知道,如果有人确实遇到过这样的奇怪案件,那么它通常来自哪里?提前致谢。

编辑
找到了解决方案!我刚刚在 bugzilla 中找到了它,在扩展 JRootPane 而不在 Windows 运行时中实现 RootPaneContainer 时,这似乎是某种错误:Java(TM) SE Runtime环境 1.8.0_141-b15 具有一些我无法理解的 GPU 和方法相关的内容,并且如果还使用模态 JDialogs ,而在使用对话框的默认 rootpane 按钮退出时,所有者始终位于顶部。

最佳答案

我曾经得到常规的 Swing Exception ,但没有可跟踪的堆栈跟踪。这是因为我违反了 Swing 中并发的规则。这个答案详细说明了:SwingWorker ProgressBar 。基本上,确保所有 Swing 代码都在事件调度线程上调用。

关于java - 带有无用堆栈跟踪的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54848189/

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