Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JList, cardLayout, and ArrayIndexOutOfBoundsException

1 view
Skip to first unread message

Robert Higgins

unread,
Dec 16, 2002, 12:02:03 PM12/16/02
to
Tough problem to layout. Goes something like this..

Picture a card layout with cards A and B. A button on each card
allows you to toggle between cards. Run the program and toggle back
and forth between cards ten times real fast. No problem.

Now add to the layout. On card B add a JList and another card
layout with cards C,D,E,F. These cards are selected and displayed via
selection in the JList.

Run the program and once again toggle between the original A and B
cards ten times real fast stopping on card B. Then select one of the
cards (C,D,E,F) in the JList. ArrayIndexOutOfBoundsException.

Seems like the rapid toggling has events cued in some way and the cue
is not resolved properly?

In my app you don't have to toggle real fast to get the problem. I
just know that this is a surefire way to reproduce the problem which
otherwise is somewhat intermittent with typical usage, but it is
definitely there.

I really need for this layout to work. It's killer. I don't expect
this'd be easy to diagnose but if anyone would have thoughts they
would be greatly appreciated.

Thanks.

Robert Higgins

unread,
Dec 16, 2002, 5:51:01 PM12/16/02
to
rhigg...@hotmail.com (Robert Higgins) wrote in message news:<72245bed.02121...@posting.google.com>...


I forgot to post the exception...


java.lang.ArrayIndexOutOfBoundsException: 0
at javax.swing.text.BoxView.getOffset(BoxView.java:1079)
at javax.swing.text.BoxView.childAllocation(BoxView.java:669)
at javax.swing.text.CompositeView.getChildAllocation(CompositeView.java:215)
at javax.swing.text.BoxView.getChildAllocation(BoxView.java:427)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.calculateViewPosition(BasicTextUI.java:1850)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.layoutContainer(BasicTextUI.java:1826)
at java.awt.Container.layout(Container.java:1017)
at java.awt.Container.doLayout(Container.java:1007)
at java.awt.Container.validateTree(Container.java:1089)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validate(Container.java:1064)
at java.awt.CardLayout.show(CardLayout.java:465)
at java.awt.CardLayout.show(CardLayout.java:453)
at eio.rater.NJHOResultsDetailsPanel.jList1_valueChanged(NJHOResultsDetailsPanel.java:814)
at eio.rater.NJHOResultsDetailsPanel$5.valueChanged(NJHOResultsDetailsPanel.java:216)
at javax.swing.JList.fireSelectionValueChanged(JList.java:1318)
at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1332)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:402)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:411)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:435)
at javax.swing.JList.setSelectionInterval(JList.java:1605)
at javax.swing.plaf.basic.BasicListUI$MouseInputHandler.adjustFocusAndSelection(BasicListUI.java:1332)
at javax.swing.plaf.basic.BasicListUI$MouseInputHandler.mousePressed(BasicListUI.java:1294)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:218)
at java.awt.Component.processMouseEvent(Component.java:5090)
at java.awt.Component.processEvent(Component.java:4890)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3162)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
at java.awt.Container.dispatchEventImpl(Container.java:1609)
at java.awt.Window.dispatchEventImpl(Window.java:1585)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
java.lang.ArrayIndexOutOfBoundsException: 0
at javax.swing.text.BoxView.getOffset(BoxView.java:1079)
at javax.swing.text.BoxView.childAllocation(BoxView.java:669)
at javax.swing.text.CompositeView.getChildAllocation(CompositeView.java:215)
at javax.swing.text.BoxView.getChildAllocation(BoxView.java:427)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.calculateViewPosition(BasicTextUI.java:1850)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.layoutContainer(BasicTextUI.java:1826)
at java.awt.Container.layout(Container.java:1017)
at java.awt.Container.doLayout(Container.java:1007)
at java.awt.Container.validateTree(Container.java:1089)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validateTree(Container.java:1096)
at java.awt.Container.validate(Container.java:1064)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:353)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:116)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

Jim Sculley

unread,
Dec 16, 2002, 9:22:21 PM12/16/02
to

This error has absolutely nothing to do with the layout. It is thrown
by code in the javax.swing.text package. You have a text widget
somewhere in your layout and the problem lies in what you are trying to
display with that widget.

Jim S
--
Remove my extraneous mandibular appendages to reply via e-mail.

0 new messages