Hallo!
Ich arbeite mit ein paar Leuten gemeinsam an einem Online-Schach-Spiel, welches wir mir Java/Eclipse implementieren sollen. Mein Teil dabei ist es, die GUI zu entwickeln und dabei die mi bereitgestellten Funktionen der anderen Leute zu verwenden.
In der GUI hab ich jetzt verschiedene Ansichten ("Views"): TournamentView, PlayerView, GroupView. Diesefunktionieren nach dem selben Prinzip: Links im Dialogfeld die Liste aller verfügbaren Tuniere/Spieler/Gruppen und rechts im Dialogfeld nähere Details über das links ausgewählte Objekt.
Bei der Erstellung der GUI arbeite ich mit Swing, meine Fenster bestehen aus Boxen, dem entsprechend verwende ich das BoxLayout. Für die Liste meiner Turniere/Spieler/Gruppen verwende ich eine JList, die ich in ein JScrollPane einbette.
Mein Problem:
Seit neustem wird mir eine NullPointerException geworfen. Wenn ich mir die Methodensequenz im Debug Modus ansehe, wird jedoch keine einzige meiner Methoder aufgerufen, die diese Exception hervorruft.
Was ich bisher rausfinden konnte, ist, dass bei der JScrollPane der Button, mit dem man normalerweise die Scrolleiste nach unten bewegen kann, keine PreferredSize definiert hat (also irgendwas bei der initialisierung von JScrollPane komisch sein müsste).
Immer wenn ich zwischen meinen Ansichten wechsel, erzeuge ich ein neues JList und ein neues JScrollBar. Das merkwürdige ist aber, dass die Exception nur manchmal fliegt!
Keine Ahnung, ob es was bringt, aber ich hab mal den Aufrufverlauf zur Methode, wo die Exception auftritt, aus dem Debugger hier reinkopiert. (siehe Unten)
Wenn jemandem weiß, wie man diese Exception los wird, wär das echt klasse! Danke!
WindowsScrollBarUI(BasicScrollBarUI).layoutHScrollbar(JScrollBar) line: 678
WindowsScrollBarUI(BasicScrollBarUI).layoutContainer(Container) line: 777
JScrollPane$ScrollBar(Container).layout() line: 1432
JScrollPane$ScrollBar(Container).doLayout() line: 1421
JScrollPane$ScrollBar(Container).validateTree() line: 1519
JScrollPane(Container).validateTree() line: 1526
JScrollPane(Container).validate() line: 1491
RepaintManager.validateInvalidComponents() line: 635
SystemEventQueueUtilities$ComponentWorkRequest.run() line: 127
InvocationEvent.dispatch() line: 209
EventQueue.dispatchEvent(AWTEvent) line: 597
EventDispatchThread.pumpOneEventForFilters(int) line: 273
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) 183
EventDispatchThread.pumpEventsForHierarchy(int,Conditional,Component)
EventDispatchThread.pumpEvents(int, Conditional) line: 168
EventDispatchThread.pumpEvents(Conditional) line: 160
EventDispatchThread.run() line: 121 [local variables unavailable]