Ergebnis 1 bis 4 von 4

Thema: Hilfe: Exception in Java

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Hilfe: Exception in Java

    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]

  2. #2
    NullPointerException bedeutet, dass du auf eine Eigenschaft oder Methode eines Objekts zugreifst, das nicht gesetzt ist (also null ist). Wo genau das der Fall ist, kann dir ohne Code aber keiner sagen. Häufiger Fall ist, das vergessen wurde, ein Attribut bei der Initialisierung des Objekts nicht zu setzen.

  3. #3
    Zitat Zitat
    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).
    Zitat Zitat
    NullPointerException bedeutet, dass du auf eine Eigenschaft oder Methode eines Objekts zugreifst, das nicht gesetzt ist (also null ist).
    Die preferredSize des DecrButtons meiner JScrollPane ist nicht gesetzt. Darauf hab ich aber meines Wissens eigentlich nicht wirklich Einfluss.

  4. #4
    Hat sich geklärt. Das Problem bestand wahrscheinlich wegen einer Überlagerung von Threads. Auf jeden Fall funktioniert es jetzt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •