Witam, potrzebuję pomocy w zlokalizowaniu problemu w kodzie:
private void dodajDoListyZaznaczonychCheckBoxow(JCheckBox...listaChB){
ArrayList<Integer> ListaIndexowZaznaczonychChB=new ArrayList<>();
for(int i=0;i<listaChB.length;i++){
System.out.println(i+" i");
if(listaChB[i].isSelected()==true)
ListaIndexowZaznaczonychChB.add(i);
}
int[] tab = new int[ListaIndexowZaznaczonychChB.size()]; //potrzebuje tablicy prymitywnych int dla metody Orders.addOrder() ze wzgledu na specyfike "OrderID(int... tabIndex){...}"
for(int j=0;j<ListaIndexowZaznaczonychChB.size();j++){
System.out.println(j+" j");
tab[j]=ListaIndexowZaznaczonychChB.get(j).intValue();
}
Orders.addOrder(tab);
System.out.println("dodane");
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
dodajDoListyZaznaczonychCheckBoxow(jCheckBox1,jCheckBox2,jCheckBox3,jCheckBox4,jCheckBox5,jCheckBox6,jCheckBox7,jCheckBox8,jCheckBox9,jCheckBox10,jCheckBox11);
System.out.println(Orders.activeOrders);
}
Kod rzuca wyjątkiem "java.lang.IndexOutOfBoundsException". Wiem że oznacza on wykroczenie poza jakąś tablice lub to, że jest ona pusta, jednak juz od dluższego czasu szukam miejsca, w którym się to dzieje i nic nie mogę znaleźć. Aktualnie te 2 println sa dodane jako pomoc przy znalezieniu, jednak i tak na żadne rozwiazanie mnie nie naprowadziły.
Po zaznaczeniu np. 3 checkboxów i wcisnieciu buttona otrzymuje taki kod zwrotny:
run:
0 i
1 i
2 i
3 i
4 i
5 i
6 i
7 i
8 i
9 i
10 i
0 j
1 j
2 j
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at restaurant.Orders.addOrder(Orders.java:25)
at gui.jOrdersFrame.dodajDoListyZaznaczonychCheckBoxow(jOrdersFrame.java:220)
at gui.jOrdersFrame.jButton1ActionPerformed(jOrdersFrame.java:224)
at gui.jOrdersFrame.access$100(jOrdersFrame.java:17)
at gui.jOrdersFrame$2.actionPerformed(jOrdersFrame.java:93)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
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:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
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:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
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)
Może ktoś zauważy, w którym miejscu kodu leży problem.