Exception in thread "Thread-3" java.lang.NullPointerException

mimix

Aktives Mitglied
Hallo

Ich möchte Pacman programmieren. Mein Fenster besteht aus einem JFrame, JPanel mit dem LayoutManager "GridLayout". Da GridLayout-Manager seine Komponente in einem Gitter ordnet das aus gleich grossen gitterzellen besteht ist jede dieser Gitterzelle bei mir ein Panel. So kann im Spiel auf jeder Zelle entweder ein Punkt, eine Wand, ein Geist oder Pacman stehen. Um Pacman auf das Spielfeld zu zeichnen habe ich ein glass pane verwendet. Nun möchte ich aber, dass Pacman auf die unteren Fenster, also auf die einzelnen Kacheln zugreift, um zu überprüfen ob er auf einem Punkt, auf eine Wand oder auf gar nichts steht.

Ich wollte es so machen:
Java:
class MyGlassPane extends JComponent implements ItemListener, Runnable {
...
public void run() {
      Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
      if (has.getKachelRechts().hasPunkt() == true) {
         while (true) {
            // Verändern der x- Koordinate
            x_pos++;
            // Neuzeichnen des Applets
            repaint();
            try {
               Thread.sleep(25);
            } catch (InterruptedException ex) {
            }
            Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
         }
      }
   }
...

aber bekomme leider eine Exception in thread "Thread-3" java.lang.NullPointerException zurück

Kann mir jemand helfen? :(
 

mimix

Aktives Mitglied
In der MyGlassPane Klasse


Exception in thread "Thread-3" java.lang.NullPointerException
at tt.test.pacman.spielfeld.SpielfeldKachelModel.getKachelRechts(SpielfeldKachelModel.java:86)
at tt.test.pacman.MyGlassPane.run(MyGlassPane.java:43)
 

GUI-Programmer

Top Contributor
Ich hab mal all deinen Klassen in ein einziges Package gepackt und entsprecht die 1. Zeile deiner Klasse so abgeändert und bei mir startet dein Programm ohne Exception. Ich benutze Eclipse.
 

GUI-Programmer

Top Contributor
Nein, keine Fehlermeldung, aber soll denn passieren, soll sich der Punkt auch noch bewegen, wenn ja, sag mir in welcher Klasse du die start Methode deiner JComboBox aufrust und sag mir wo ich nen try - catch Block hinpacken soll, bzw. mach du das und gib mir mal den kompletten StackTrace! (mit ex.printStackTrace() und dann kopieren)
 
T

Tomate_Salat

Gast
Poste mal die Methode getKachelRechts von SpielfeldKachelModel mit korrekter Zeilenangabe ([java=80])

z.B.: [noparse][java=25]System.out.println("Ich bin zeile 25");[/code][/noparse]
[java=25]
System.out.println("Ich bin zeile 25");
[/code]
 

mimix

Aktives Mitglied
Die run() Methode ist in der MyGlassPane Klasse.

Java:
public void run() {
      Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
      if (has.getKachelRechts().isLeer() == true) {        
        while (true) {
            x_pos++;
            repaint();
            try {
               Thread.sleep(25);
            } catch (InterruptedException ex) {
            }
            Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
         }
      }
   }


Hier wird die Position festgelegt
Java:
SpielfeldKachelModel has = new SpielfeldKachelModel(null, 12, 12); //x=12,y=12

[JAVA=62]
public SpielfeldKachelModel getKachelRechts() {
return parent.getKachelPosition(pos_x + 1, pos_y);
}
[/code]

Also müsste eig. Pacman laufen, da die Kachel leer ist.


Exception:
Exception in thread "Thread-3" java.lang.NullPointerException
at tt.test.pacman.spielfeld.SpielfeldKachelModel.getKachelRechts(SpielfeldKachelModel.java:63)
at tt.test.pacman.MyGlassPane.run(MyGlassPane.java:40)
at java.lang.Thread.run(Unknown Source)
 

GUI-Programmer

Top Contributor
Bekomme nun den Fehler auch. Und meine Schlussfolgerung: parent ist auf jeden fall null. Getestet mit ein System.out.println(parent);

Somit ist MyGlassPane.has.getKachelRechts() dann null und kann daher nicht die Methode ausführen. Warum das so ist habe ich bisjetzt aber nicht rausfinden können, ist ja schließlich dein Code und dein Programmiestil. Mein Tipp: Entweder Englisch (bevorzuge ich), oder deutsch, aber nicht mischen.
 

hdi

Top Contributor
Entweder Englisch (bevorzuge ich), oder deutsch, aber nicht mischen.
Getter & Setter sollten immer mit get/set starten, sonst findest man sie nicht. Versuch das mal auf Deutsch zu schreiben. frageRechterEckpunktAb() ? Das ist Quatsch. Insofern sollte man da auch wenn man sonst auf deutsch codet die englischen Präfixe beibehalten. Aber ich geb dir Recht: Das beste ist wenn man gleich alles auf Englisch hält.
 

GUI-Programmer

Top Contributor
Getter & Setter sollten immer mit get/set starten, sonst findest man sie nicht. Versuch das mal auf Deutsch zu schreiben. frageRechterEckpunktAb() ? Das ist Quatsch. Insofern sollte man da auch wenn man sonst auf deutsch codet die englischen Präfixe beibehalten. Aber ich geb dir Recht: Das beste ist wenn man gleich alles auf Englisch hält.

Auf Deutsch habe ich das in der Schule so gelernt:
Code:
rechterEckpunktGeben()
und
Code:
rechterEckpunktSetzen(...)

Aber darum geht`s hier ja nicht, ich finde halt den Fehler nicht, dafür müsste ich mich ins komplette Programm einlesen mit allen Klassen um es vollständig verstanden zu haben und dann suchen zu können, aber ich glaub das ist nicht der Zweck dieses Forums hier. Vielleicht findet ja jemand den Fehler einfach so beim Überfliegen!
 

hdi

Top Contributor
Auf Deutsch habe ich das in der Schule so gelernt
Was beweist, dass die Lehrer an der Schule keine Ahnung haben. Wie willst du denn mit so einer Namensgebung herausfinden welche Werte des Objekts du abfragen oder ändern kannst? Da musst du ja die komplette API-Doc durchscrollen. Übrigens gibt es gewisse Frameworks die voraussetzen, dass Getter und Setter sich an die übliche Namenskonvention halten (Java Beans), und wenn die Methoden anders heißen kracht es da.
 

GUI-Programmer

Top Contributor
Wie willst du denn mit so einer Namensgebung herausfinden welche Werte des Objekts du abfragen oder ändern kannst? Da musst du ja die komplette API-Doc durchscrollen. Übrigens gibt es gewisse Frameworks die voraussetzen, dass Getter und Setter sich an die übliche Namenskonvention halten (Java Beans), und wenn die Methoden anders heißen kracht es da.

Weshalb ich beim Programmieren ((meist) außer dem Kommentar) immer Englisch verwende.

Aber nun zum Thema:
Ich bin der Meinung, der Fehler liegt ganz wo anders, da ja anscheinend in
Code:
SpielfeldModel.getKachelPosition(int x, int y)
entweder spielfeld[x][y] null ist, was bedeuten würde das vermutlich ein Fehler in den for-Schleifen liegt. Oder dummyWand null ist, wobei mir das sehr unwahrscheinlich zu sein scheint, da im Konstruktor von SpielfeldModel es mit
Code:
dummyWand = new SpielfeldKachelModel(null, -1, -1);
ja initialisiert wird und nirgenswo mehr auf null gesetzt werden kann.
 

hdi

Top Contributor
@TO Ich würd mal den Eclipse Debugger anschmeißen, damit kommt man in solchen Fällen oft schneller zu einer Lösung.
 

Stelufl

Mitglied
Wie du hast noch nicht debuggt? Wenn ich ne NPE bekomme, ist das Debugging mit sinnvoll gesetzten Haltepunkten das erste was ich mache und das effektivste, um den Ursprung der NPE herauszufinden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Exception in thread "main" java.lang.NoClassDefFoundError AWT, Swing, JavaFX & SWT 4
G Exception javafx Thread -> caused by removing children while in EventHandler AWT, Swing, JavaFX & SWT 28
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
A Swing Exception in thread "AWT-EventQueue-0" AWT, Swing, JavaFX & SWT 1
S JavaFX Exception in thread "JavaFX Application Thread" AWT, Swing, JavaFX & SWT 3
X Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 AWT, Swing, JavaFX & SWT 6
L exception in thread awt-eventqueue-0 java.lang.nullpointerexception AWT, Swing, JavaFX & SWT 2
S Swing Exception in thread "AWT-EventQueue-0" bei Jlabel AWT, Swing, JavaFX & SWT 4
C Event Handling Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException AWT, Swing, JavaFX & SWT 43
lumo SWT Exception in thread "main" org.eclipse.swt.SWTError: No more handles AWT, Swing, JavaFX & SWT 3
F Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: null AWT, Swing, JavaFX & SWT 5
N Exception Behandlung mit setDefaultUncaughtExceptionHandler, insbesondere im EventDispatcher Thread AWT, Swing, JavaFX & SWT 4
S Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 7
Lony AbstractTableModel Exception in thread "AWT-EventQueue- AWT, Swing, JavaFX & SWT 3
M Exception Meldung aus Thread an jTextField1 übergeben AWT, Swing, JavaFX & SWT 6
A Exception in thread "AWT-EventQueue-0" java.lang.N AWT, Swing, JavaFX & SWT 4
H Exception: java.lang.ClassCastException AWT, Swing, JavaFX & SWT 2
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
Z JavaFX Exception in Application start method AWT, Swing, JavaFX & SWT 2
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
R AWT no such child Exception AWT, Swing, JavaFX & SWT 7
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
W JavaFX Warum kriege ich eine Exception? AWT, Swing, JavaFX & SWT 23
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Exception Message von Model Class via Controller in View darstellen AWT, Swing, JavaFX & SWT 39
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
VfL_Freak AWT Exception in der Eventqueue AWT, Swing, JavaFX & SWT 8
A Swing Null Pointer Exception obwohl Objekt initialisiert AWT, Swing, JavaFX & SWT 21
H JavaFX Ein View vorschalten Exception AWT, Swing, JavaFX & SWT 7
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
M 3D-Grafik Mac Java 3D in Eclipse Exception AWT, Swing, JavaFX & SWT 0
I Opencv Imgproc.floodfill exception AWT, Swing, JavaFX & SWT 1
T Gui Exception AWT, Swing, JavaFX & SWT 2
X Auf Fensterklasse zugreifen (Nullpointer Exception) AWT, Swing, JavaFX & SWT 2
M Threads - nicht erklärbare Exception AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
J Einträge aus Table löschen ohne Exception AWT, Swing, JavaFX & SWT 6
V Swing Nullpointer Exception bei JFormattedTextField AWT, Swing, JavaFX & SWT 4
N Swing Exception: Comparison method violates its general contract! AWT, Swing, JavaFX & SWT 13
S Exception bei BufferStrategy AWT, Swing, JavaFX & SWT 8
H Swing Exception's und MVC AWT, Swing, JavaFX & SWT 35
R Swing Mit Swing eine throws Exception Methode öffnen AWT, Swing, JavaFX & SWT 3
K AWT DataBuffer in DataBufferInt Exception AWT, Swing, JavaFX & SWT 2
S Swing AWT-Exception bei JTable mit JComboBox beim Löschen der letzten Zeile AWT, Swing, JavaFX & SWT 3
O Immer Exception in AWT-EventQueue-0 AWT, Swing, JavaFX & SWT 5
F Swing Seltsame Exception AWT, Swing, JavaFX & SWT 5
R Swing Files auflisten (JButton, JList, Exception) AWT, Swing, JavaFX & SWT 4
V LookAndFeel Nullpoint Exception AWT, Swing, JavaFX & SWT 2
Airwolf89 Swing Exception beim Füllen einer Tabelle AWT, Swing, JavaFX & SWT 10
hdi SWT Zwei mal Shell öffnen = Exception AWT, Swing, JavaFX & SWT 6
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
O Exception bei repaint AWT, Swing, JavaFX & SWT 3
D Bild zeichnen lassen aus array, null pointer Exception AWT, Swing, JavaFX & SWT 2
B JTable ValueChanged verursacht Exception AWT, Swing, JavaFX & SWT 3
Daniel_L JTable, (Auto-)RowSorter und NullPointer-Exception AWT, Swing, JavaFX & SWT 6
M Exception in eine JTextArea anzeigen AWT, Swing, JavaFX & SWT 7
T Exception: Adding a window to a container AWT, Swing, JavaFX & SWT 14
G Kann mir jemand diese Exception erklaeren? AWT, Swing, JavaFX & SWT 8
T AWT Exception AWT, Swing, JavaFX & SWT 5
A Exception beim LineWrapping AWT, Swing, JavaFX & SWT 16
P Für mich unverständliche Exception AWT, Swing, JavaFX & SWT 3
N JList - Nullpointer Exception AWT, Swing, JavaFX & SWT 4
T Warum schmeißt das eine Exception? AWT, Swing, JavaFX & SWT 6
I EventDispatchThread Exception AWT, Swing, JavaFX & SWT 5
M Problem: "ArrayIndexOutOfBounds Exception" AWT, Swing, JavaFX & SWT 11
C Out of Bounds Exception, Array of JTextField AWT, Swing, JavaFX & SWT 6
B JTable Vector Exception bei eigenem CellEditor AWT, Swing, JavaFX & SWT 3
D Seltsame AWT-Exception AWT, Swing, JavaFX & SWT 2
M Button und Exception mit NetBeans AWT, Swing, JavaFX & SWT 3
P paint null pointer exception AWT, Swing, JavaFX & SWT 3
A Null pointer exception beim Neuzeichnen AWT, Swing, JavaFX & SWT 4
R DataVector bei TableModel - Class Cast Exception AWT, Swing, JavaFX & SWT 9
G Drag & Drop bzw. Data Transfer - Exception nach Drag AWT, Swing, JavaFX & SWT 1
K Exception mit "Unknown Source" AWT, Swing, JavaFX & SWT 5
Z jar-File mit SWT - Exception AWT, Swing, JavaFX & SWT 4
F Habe Problem mit dem Abfangen einer Exception AWT, Swing, JavaFX & SWT 10
V Null Pointer Exception bei JTextField setText AWT, Swing, JavaFX & SWT 25
T Programm funkt. nicht - Exception AWT, Swing, JavaFX & SWT 7
G Exception in JList oder JTextArea AWT, Swing, JavaFX & SWT 9
M java headless exception AWT, Swing, JavaFX & SWT 5
O Exception abfangen AWT, Swing, JavaFX & SWT 19
P thread nimmt veränderte boolean nicht AWT, Swing, JavaFX & SWT 7
N JFrame loescht alles, sobald der Thread zuende ist AWT, Swing, JavaFX & SWT 22
M Server/Client thread von GUI Trennen AWT, Swing, JavaFX & SWT 2
K JavaFx, Sound Aufnahme und Thread AWT, Swing, JavaFX & SWT 0
H Event Handling Thread - Abruf der get-Methode AWT, Swing, JavaFX & SWT 5
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
C Thread verwalten AWT, Swing, JavaFX & SWT 2
L Label im JavaFX Thread Updaten AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Alert Confirmation Dialog aus einem Service Thread AWT, Swing, JavaFX & SWT 8
ralfb1105 JavaFX MVC: Thread in Model Class mit Ausgabe in TextArea AWT, Swing, JavaFX & SWT 10
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
J Thread per Button starten AWT, Swing, JavaFX & SWT 10
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben