Print

Print


Can you share some of the code? The exception indicates an indexing error which is fairly unusual if you are using a pattern like the following:

int height = 6, width = 5;
for (int ndx = 0; ndx < width; ndx++) {
  for (int ndy = 0; ndy < height; ndy++) {
    array[ndx, ndy] = /* math */
  }
}

On Mon, Apr 2, 2018 at 2:17 PM, Stewart Aitken <[log in to unmask]> wrote:
Hello,

I currently have a simulation where I am creating square and long thin horizontal rectangles in ObjectGrid2D.
Using grids that range from 900 cells to 2500 cells.

A toy model typically has width of 6 and height of 5 and everything works, all 30 cells are filled.

Now, I have to change to long thin vertical rectangles to provide a comparison to the horizontal rectangles.

Hence, I have width as 5 and height as 6. The result is that the grid fills up to width squared and then never stops.
In this case the grid has 30 cells and 25 of them are filled and the last five remain empty.

Can anyone advise me as to how to overcome this or is it just inherent that the height cannot be more than the width?

Eclipse debug gives this error:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 at javax.swing.text.BoxView.getOffset(BoxView.java:1101) at javax.swing.text.BoxView.childAllocation(BoxView.java:695) at javax.swing.text.CompositeView.getChildAllocation(CompositeView.java:232) at javax.swing.text.BoxView.getChildAllocation(BoxView.java:453) at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.calculateViewPosition(BasicTextUI.java:1999) at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.layoutContainer(BasicTextUI.java:1975) at java.awt.Container.layout(Container.java:1511) at java.awt.Container.doLayout(Container.java:1500) at java.awt.Container.validateTree(Container.java:1696) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Contai!
 ner.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validate(Container.java:1631) at java.awt.Window.dispatchEventImpl(Window.java:2744) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.Pro!
 tectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 at javax.swing.text.BoxView.getOffset(BoxView.java:1101) at javax.swing.text.BoxView.childAllocation(BoxView.java:695) at javax.swing.text.CompositeView.getChildAllocation(CompositeView.java:232) at javax.swing.text.BoxView.getChildAllocation(BoxView.java:453) at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.calculateViewPosition(BasicTextUI.java:1999) at javax.swing.plaf.ba!
 sic.BasicTextUI$UpdateHandler.layoutContainer(BasicTextUI.java:1975) at java.awt.Container.layout(Container.java:1511) at java.awt.Container.doLayout(Container.java:1500) at java.awt.Container.validateTree(Container.java:1696) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validateTree(Container.java:1705) at java.awt.Container.validate(Container.java:1631) at java.awt.Container.validateUnconditionally(Container.java:1668) at java.awt.Window.show(Window.java:1033) at java.awt.Component.show(Component.java:1671) at java.awt.Component.setVisible(Component.java:1623) at java.awt.Window.setVisible(Window.java:1014) at!
  sim.algs.alg2.SimEnviro2WithUI.main(SimEnviro2WithUI.java:32)