Clearing an ArrayList

In the ringToggle(boolean) method use r.rings.clear() it will not throw an IndexOutOfBoundsException exception, that is from somewhere else.

I suspect that the exception is thrown from the display() method.

Also I think the loop condition should be i > = 0 otherwise the first ring will never be updated.

Look at the exception stack trace and follow it down, can you see the method where the exception is thrown, if not copy and paste the trace here.