Chr*_*ert 8 java error-handling swing jtable stack-trace
如果错误的堆栈跟踪(不在主线程中发生)不包含任何方法,可以采取什么可能的行动来找出问题所在?有问题的完整痕迹:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Unknown Source)
at javax.swing.table.DefaultTableColumnModel.getColumn(Unknown Source)
at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderRenderer(Unknown Source)
at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(Unknown Source)
at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(Unknown Source)
at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at javax.swing.ViewportLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.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)
Run Code Online (Sandbox Code Playgroud)
我当前正在尝试使用SwingWorker在后台运行一个进程,最后使用新数据更新JTable.与此任务相关的所有代码都太大了,无法在此发布,我想知道是否有办法缩小错误的来源.
堆栈跟踪可能不包含您的任何方法,但并不意味着它不包含您创建的任何对象.在这种情况下,问题很可能位于您的TableModel
.
为了调试这样的堆栈跟踪,我通常使用以下方法之一:
super
.这允许您在有问题的对象的有问题的方法中放置断点这一切都归结为(除了第一种方法)相同:让我的调试器运行,以便我可以更仔细地检查所有相关对象,以了解出了什么问题.一旦你理解了这个问题,修复它大部分时间都是微不足道的
您的JTable(或您的新模型)没有列,在内部代码调用时导致ArrayIndexOutOfBoundsException DefaultTableColumnModel.getColumn
.
确保您的表的大小不是0.