Note that there are some explanatory texts on larger screens.

plurals
  1. POjava.lang.ArrayIndexOutOfBoundsException: 0 (stack implementation)
    text
    copied!<p>I'm implementing a stack application, however every time I push an item onto the stack I receive a java.lang.ArrayIndexOutOfBoundsException: 0.</p> <pre><code>//stack constructor public Stack() { stack = new int[STACKSIZE]; top = 0; } //push code public void push(int n) throws Exception { if(top == STACKSIZE) { throw new Exception("Stack Overflow"); } else { stack[top++] = n; } } //stack size variable protected int STACKSIZE; //get stack size public int getStackSize() { return STACKSIZE; } //set stack size public void setStackSize(int size) { STACKSIZE = size; } //declaring a new stack object in the GUI class private Stack stack = new Stack(); //variable for default stack size (class level variable) private int stackSize = 0; //setting the size stack.setStackSize(stackSize); //code where push is being used (located within a jbutton event) try { int size = stack.getStackSize(); stack.setStackSize(++size); String inputNumber = EquationLabel.getText().replaceAll(remove, replaceWith); int number = Integer.parseInt(inputNumber); clear(); stack.push(number); } catch (NumberFormatException error) { MessageLabel.setText("Error: " + error.getMessage()); error.printStackTrace(); } catch (Exception error) { MessageLabel.setText("Error: " + error.getMessage()); error.printStackTrace(); } //stack trace output java.lang.ArrayIndexOutOfBoundsException: 0 at Stack.Stack.push(Stack.java:66) at calculator.Calculator.actionPerformed(Calculator.java:268) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) </code></pre> <p>Thanks for any help/guidance, I'm really unsure on this one.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload