使用JTable遇到的古怪问题

rocket_11 2007-06-22 12:12:15
利用继承自 DefaultTableModel 的类 ServerTableModel 构造 JTable ,在 ServerTableModel中加入了操作模型的方法,运行结果正常,但是抛出异常如下:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 23 >= 3
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
at javax.swing.JTable.getValueAt(JTable.java:2652)
at javax.swing.JTable.prepareRenderer(JTable.java:5666)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2067)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1969)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1765)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:758)
at javax.swing.JComponent.paint(JComponent.java:1022)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5104)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
at javax.swing.RepaintManager.paint(RepaintManager.java:1132)
at javax.swing.JComponent._paintImmediately(JComponent.java:5052)
at javax.swing.JComponent.paintImmediately(JComponent.java:4862)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:727)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:683)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:663)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

并不是我自己写的代码抛出的异常,请问可能是哪里出了问题啊:-(


...全文
455 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenmiao007_3000 2007-08-18
  • 打赏
  • 举报
回复
我感觉你在用数据模型组织数据时,用了集合,而且是Vector,你查一下,程序中有没有地方是溢出的,比如,本来你的Vector中只有三个数据,而你却引用了第五个,这就是溢出,就会出这样的错误。
zhmt 2007-08-15
  • 打赏
  • 举报
回复
ni你打印出来的栈信息不完整
zhengjing01 2007-08-07
  • 打赏
  • 举报
回复
检查下你的组件是不是有些没有初始化然后在线程中使用了
gentalguo 2007-08-04
  • 打赏
  • 举报
回复
感覺~~有點像windows的消息循環出了問題
fool_leave 2007-06-25
  • 打赏
  • 举报
回复
这个是Swing自己在绘制表格时报的错
我也出现过,很难解决的
你将表格的数据改变,然后fire事件通知swing; swing会在Thread中绘制.
但是Swing是线程不安全的.这个错误很可能是因为你在不安全的地方操作了Table的数据.
iehanbin 2007-06-25
  • 打赏
  • 举报
回复
肯定是调用table的getValueAt(int row, int column) 方法时传入的参数超出了table实际的row或者column。
iehanbin 2007-06-25
  • 打赏
  • 举报
回复
用eclipse自己debug啊。看看数组什么时候越界了。在执行哪个方法的时候出现了23。哪个又是3
zhmt 2007-06-22
  • 打赏
  • 举报
回复
占据有利地形--沙发
呵呵舒舒服服地帮"rocket_11()"顶一下

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧