java - 找不到java.lang.ArrayIndexOutOfBoundsException的问题

标签 java debugging exception exception-handling

我的应用程序有问题,有时会在控制台中返回此错误,但我找不到来源(所有来源未知)。出现此错误后应用程序似乎可以正常工作,但我想了解发生了什么...我该怎么做?

谢谢你,对不起我的英语!

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
at java.awt.Container.layout(Unknown Source)
at java.awt.Container.doLayout(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validate(Unknown Source)
at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

最佳答案

查看 BasicListUI.updateLayoutState() 的源代码,只有当显示的列表在方法执行期间更改大小时才会发生这种情况。

最可能的原因是您正在从 event dispatch thread 之外修改模型.这是一个严重的问题,因为它可能导致各种奇怪的行为甚至损坏数据。

要解决这些问题,请使用 SwingUtilities.invokeLater()每当您需要从 EDT 外部操作模型时。

关于java - 找不到java.lang.ArrayIndexOutOfBoundsException的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222540/

相关文章:

java - 将秒数转换为 HH :MM (without seconds) in Java

java - 设置编辑文本限制

javascript - 在事先不知道方法的情况下,如何在调试时找出 Javascript 中调用了哪些方法?

flutter - 如何测试异步生成器引发的异常?

java - 谁捕获异常,在 close 方法中出现?(try-with-resources)

java - 您可以使用 docusign(Java) 创建页面特定的 anchor 标记吗?

java - 如何覆盖从父复杂类型继承的元素类型?

perl - 在 Perl 调试器中,如何在所需文件的特定行上中断?

java - 找不到源错误并且应用程序突然关闭

c# - NHibernate - 非空属性引用空值或 transient 值