悲催啊。。刚刚上手这个东西,请教大家一下
一个单据里面建立了一个分录,会自带添加,删除,插入按钮的然后我点击分录中的一条记录,单击删除就没有问题。但是如果我是点击添加,然后填完记录的明细,直接点击删除就会报下面的错误
(这个东西,我还没法改,都被封装掉了)java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:546)
at java.util.ArrayList.remove(ArrayList.java:389)
at com.kingdee.bos.dao.AbstractBaseObjectCollection.removeObject(AbstractBaseObjectCollection.java:333)
at com.kingdee.eas.framework.client.multiDetail.DetailPanel.removeLine(DetailPanel.java:507)
at com.kingdee.eas.framework.client.multiDetail.DetailPanel.actionRemoveLine_actionPerformed(DetailPanel.java:346)
at com.kingdee.eas.framework.client.multiDetail.DetailPanel$3.actionPerformed(DetailPanel.java:202)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at com.kingdee.bos.ctrl.swing.KDWorkButton.fireActionPerformed(KDWorkButton.java:567)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5517)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at com.kingdee.bos.ctrl.swing.KDWorkButton.processMouseEvent(KDWorkButton.java:861)
at java.awt.Component.processEvent(Component.java:5282)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1791)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at com.kingdee.bos.invokecounter.RPCLogEventQueue.dispatchEvent(RPCLogEventQueue.java:83)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

解决方案 »

  1.   

    兄弟分录是绑定了分录实体的对象的,你填完分录的时,分录存储的对象还没有绑定到分录实体的objectcollection里面去,删除分录的时候出了删除kdtable里面的值,还会同时将editdata里面的分录objectcollection选中的记录删除,但是刚填完的时候还没有进行绑定,也就是说分录实体objectcollection里面没有当前编辑的这条分录的记录,so,删除这个记录的时候会提示分录实体里面的objectcollection索引越界。你editstopped后调用一下storefield方法,应该就可以解决了。