Wsteczna propagacja błędu - wykrywanie gestów - błąd

0

Witam napisałem program do wykrywania błędów metodą sztucznej propagacji, program jest w zasadzie ukończony jednakże cały czas pojawia mi się błąd (program rysuje oraz przelicza, jednakże wychodzą wartości ujemne). Bardzo proszę o pomoc. Kod aplikacji w załączeniu jako załącznik.

Treść błędu

 
run:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 5
	at ssn.gestureController.calGradientY(gestureController.java:185)
	at ssn.gestureController.CalculateGradient(gestureController.java:157)
	at ssn.gestureController.access$100(gestureController.java:27)
	at ssn.gestureController$2.mouseReleased(gestureController.java:459)
	at java.awt.Component.processMouseEvent(Component.java:6525)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6290)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4881)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
	at java.awt.Container.dispatchEventImpl(Container.java:2278)
	at java.awt.Window.dispatchEventImpl(Window.java:2739)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
	at java.awt.EventQueue.access$400(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:697)
	at java.awt.EventQueue$3.run(EventQueue.java:691)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:719)
	at java.awt.EventQueue$4.run(EventQueue.java:717)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
	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)
BUILD SUCCESSFUL (total time: 7 seconds)
1

Błąd jest jasny - odwołujesz się do 5 indeksu tablicy która ma mniej niż 5 elementów...

0

Przepraszam, ale dalej nie mogę dojść jak to poprawić. Czy ktoś mógłby mi wskazać konkretne rozwiązanie? Pozdrawiam

0

Uruchom w IDE i użyj debuggera.

0

Witam odpaliłem pod IDE NetBeans i pomimo debugowania dalej nie mogę dojść co robię źle...

0

@adamwwa to chyba nie umiesz debugować co?

0

@adamwwa no tak, bo debugger to jest takie magiczne coś co samo poprawia błędy. WTF. Masz tu jak byk:
at ssn.gestureController.calGradientY(gestureController.java:185)
napisane GDZIE DOKŁADNIE leci wyjątek. Czego ty nie rozumiesz? Jak nie rozumiesz CZEMU leci to kliknij w to miejsce kodzie i daj "insert breakpoint" a następnie odpal debugger który zatrzyma się w tym miejscu. Będziesz mógł sprawdzić sobie zawartość zmiennych i przejść kod krok po kroku żeby zobaczyć gdzie popełniłeś błąd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1