我的老師建議使用ArrayList,這是我第一次使用它。我不斷收到ArrayList OutofBounds的ang錯誤。我得到這個想法是空的,但我已經添加到ArrayList。也許它不能添加,我卡住了。 T^T我是使用ArrayLists的新手。數組越界,數組似乎是空的,但已經添加了字符串到它已經
for(; pizza.i<3;pizza.i++){
if(jComboBox5.getSelectedIndex()==pizza.i){
pizza = new Pepperoni(pizza);
pizza.count();
//pizza.toppings.add(""+i+" Pepperoni");
//pizza.toppingctr++;
System.out.println(pizza.i+"Pepperoni"+(++pizza.toppingctr));
}
if(jComboBox6.getSelectedIndex()==pizza.i){
pizza = new Mushroom(pizza);
pizza.count();
System.out.println(pizza.i+"Mu"+(++pizza.toppingctr));
} ........
}for(int i=0; i<pizza.toppingctr;i++){
System.out.println(pizza.toppings.get(i));
}
System.out.println和我工作應該如何工作。我認爲問題出現在pizza.count(在Pepperoni,Mushroom等中找到),我實際上在我的ArrayList中添加了字符串。
public int count(){
pizza.toppings.add(""+pizza.i+" Pepperoni");
return (pizza.toppingctr+1);
}
辣(和其他)延伸到PizzaDecorator,和PizzaDecorator延伸到比薩,其中數組列表被初始化。
ArrayList<String> toppings =new ArrayList<String>();
更新:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at pizzabasedresto.PizzaPanel.jButton1ActionPerformed(PizzaPanel.java:832)
at pizzabasedresto.PizzaPanel.access$2300(PizzaPanel.java:18)
at pizzabasedresto.PizzaPanel$24.actionPerformed(PizzaPanel.java:422)
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:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
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:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
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:720)
at java.awt.EventQueue$4.run(EventQueue.java:718)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:
堆棧跟蹤不顯示它是什麼線,但是當我刪除
for(int i=0; i<pizza.toppingctr;i++){
System.out.println(pizza.toppings.get(i));
}
異常消失了。所以引發異常的說法是:
請發佈完整的堆棧跟蹤(格式化爲代碼)並在代碼中標識拋出異常的語句。 –
請[編輯]您的文章,並添加完整的堆棧跟蹤(格式爲代碼)。然後在你的代碼中找到堆棧跟蹤中提到的語句(按行號),並告訴我們是哪個語句。 –