Hallo,
folgendes Problem:
Mein Programm(Game of Life) wirft beim starten immer eine Exception(siehe Ende):
Ich habe bereits einiges dazu gegoogelt, habe aber noch nicht hilfreiches gefunden.
Anscheinend ist es nur ein Bug in Swing: Bug ID: JDK-7075600 IllegalArgumentException throws when running apps
Mein Programm enthält ein zweidimensionales Array das als Raster gezeichnet wird. Standardmäßig ist dies auf [50][50] groß. Das interessante ist, wenn ich dieses Array auf [13][13] verringe wird diese Exception beim Starten nicht geworfen. Bei [14][14] ist sie wieder da.
Die Exception kommt auch wenn man während das Programm läuft "Tab" auf der Tasttatur drücktum von einem Button zum anderen zu springen ???:L
Wie gesagt, wenn das Array nur [13][13] groß ist dann tritt der Fehler garnicht mehr auf, weder beim Start noch beim "Tab" drücken.
Für mich stellt sich die Frage, kann man das überhaupt fixen? Wenn ja wie, wenn nein hat es eine Auswirkung für den User? (Außer, dass man mit "Tab" nicht die Buttons auswählen kann). Solange der Fehler nur in Eclipse in der Konsole angezeigt wird dürfte das kein Problem sein nehme ich an!
edit: Es hat ziemlich lange gedauert bis ich herausgefunden, dass der Fehler beim Array auftritt. Da die Exception keine Codezeile angibt
folgendes Problem:
Mein Programm(Game of Life) wirft beim starten immer eine Exception(siehe Ende):
Ich habe bereits einiges dazu gegoogelt, habe aber noch nicht hilfreiches gefunden.
Anscheinend ist es nur ein Bug in Swing: Bug ID: JDK-7075600 IllegalArgumentException throws when running apps
Mein Programm enthält ein zweidimensionales Array das als Raster gezeichnet wird. Standardmäßig ist dies auf [50][50] groß. Das interessante ist, wenn ich dieses Array auf [13][13] verringe wird diese Exception beim Starten nicht geworfen. Bei [14][14] ist sie wieder da.
Die Exception kommt auch wenn man während das Programm läuft "Tab" auf der Tasttatur drücktum von einem Button zum anderen zu springen ???:L
Wie gesagt, wenn das Array nur [13][13] groß ist dann tritt der Fehler garnicht mehr auf, weder beim Start noch beim "Tab" drücken.
Für mich stellt sich die Frage, kann man das überhaupt fixen? Wenn ja wie, wenn nein hat es eine Auswirkung für den User? (Außer, dass man mit "Tab" nicht die Buttons auswählen kann). Solange der Fehler nur in Eclipse in der Konsole angezeigt wird dürfte das kein Problem sein nehme ich an!
edit: Es hat ziemlich lange gedauert bis ich herausgefunden, dass der Fehler beim Array auftritt. Da die Exception keine Codezeile angibt
Code:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeLo(Unknown Source)
at java.util.TimSort.mergeAt(Unknown Source)
at java.util.TimSort.mergeCollapse(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.enumerateAndSortCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFocusTraversalCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getDefaultComponent(Unknown Source)
at java.awt.FocusTraversalPolicy.getInitialComponent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.SequencedEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Zuletzt bearbeitet: