[Greenfoot] java.lang.NullPointerException

V

VintageSucks

Gast
Hallo,

ich arbeite mit Greenfoot und erstelle gerade ein simples Spiel.

Nun wollte ich eine Pausier-Funktion einbauen, und habe in der World Class Levels

Java:
public boolean isRunning;
Java:
public void act()  
    {  
        checkPause();  
    }
und
Java:
public void checkPause()  
    {  
       String keyPressed = Greenfoot.getKey();  
        if(keyPressed.equals("p"))  
        {  
            if(isRunning)  
            isRunning = false;  
            else if(!isRunning)  
            isRunning = true;  
        }  
    }
eingebaut. In der Actor Class Fee dementsprechend
Java:
public void act()  
{  
    if(((Levels) getWorld()).isRunning)  
    {  
        ...  
    }  
}
Das Kompilieren funktioniert einwandfrei, aber wenn ich das ganze dann ausführe erscheint diese Fehlermeldung:
Java:
java.lang.NullPointerException
	at Levels.checkPause(Levels.java:28)
	at Levels.act(Levels.java:22)
	at greenfoot.core.Simulation.actWorld(Simulation.java:504)
	at greenfoot.core.Simulation.runOneLoop(Simulation.java:447)
	at greenfoot.core.Simulation.runContent(Simulation.java:197)
	at greenfoot.core.Simulation.run(Simulation.java:187)

Was habe ich falsch gemacht? Ich habe schon gegoogelt, aber nicht herausgefunden woran es liegen könnte.
 

akimoon

Aktives Mitglied
kleine Frage:
Was steht denn in:
" at Levels.checkPause(Levels.java:28)"?

Eigentlich ist eine Nullpointer-Exception doch relativ aussagekräftig? :)
 
T

Tomate_Salat

Gast
Ich nehme mal an:
keyPressed null oder
Greenfoot ist null.
Wenn Greenfoot keine falsch geschrieben Variable ist, wird wohl ersteres der Fall sein. D.h. du musst erst noch auf [c]null[/c] prüfen.
 

Marco13

Top Contributor
Greenfoot (Greenfoot_DE_2_0) -> "Liefert die zuletzt gedrückte Taste zurück (seit dem letzten Aufruf). Wenn seit dem letzten Aufruf der Methode keine Taste gedrückt wurde, wird null zurückgegeben."

->
if (keyPressed != null && keyPressed.equals("p"))
oder
if("p".equals(keyPressed))
 

akimoon

Aktives Mitglied
was für einen Wert hat denn "isRunning" am Anfang? :D

Kenn mich leider mit Greenfoot nicht aus, und weiß nicht, wo checkPause() aufgerufen wird..
 
V

VintageSucks

Gast
Code:
isRunning
ist am Anfang scheinbar auf
Code:
false
(genau weiß ich es aber auch nicht), und
Code:
checkPause()
wird ab dem Levelstart ununterbrochen ausgeführt um auf ein p zu warten.
 
G

Gast2

Gast
Java:
public void checkPause()  
    {  
       String keyPressed = Greenfoot.getKey();  
        if(keyPressed.equals("p"))  
        {  
            if(isRunning)  
            isRunning = false;  
            else if(!isRunning)  
            isRunning = true;  
        }  
    }

Nur so am Rande: Setz die KLammern sonst hast du irgendwann ohne Ende Fehler die du suchst...

Java:
public void checkPause()  
    {  
       String keyPressed = Greenfoot.getKey();  
        if(keyPressed.equals("p"))  
        {  
            if(isRunning) { 
                isRunning = false;  
            } else {
                isRunning = true;  
            }
        }  
    }
 

akimoon

Aktives Mitglied
Also...
Variante A: Debuggen/Wert ausgeben
Variante B: Variable einfach mal auf true setzen????:L???:L

Und wenn mein Vorredner daran schon was aussetzt:
Du kannst dir das if beim else-Zweig sparen. Ein boolscher Wert ist entweder true oder false. Eine dritte Möglichkeit gibt es nicht (if(true) xxx else yyy ) .... edits sind fies! :lol:
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Noch so ein Trick am Rande: Man kann das ganze verkürzen.
Ausgangssituation:
Java:
if(isRunning)  
      isRunning = false;  
else if(!isRunning)  
      isRunning = true;
Verkürzen:
Kürzer wäre wohl das [c]else if[/c] durch ein else zu ersetzen, aber noch kürzer geht es, wennn du einfach folgendes schreibst:
Java:
isRunning=!isRunning;
 
V

VintageSucks

Gast
das verkürzen war ein guter tipp, danke. :)

Variante B: Variable einfach mal auf true setzen????:L???:L

wenn ich das mache, startet das ganze zwar endlich unpausiert, lässt sich aber nicht pausieren.

kann man nicht irgendwie unpausiert starten, und erst beim drücken von p pausieren? ein spiel das pausiert startet ist ja irgendwie nicht schön. :D
 

akimoon

Aktives Mitglied
wo hast du die Variable denn auf "true" gesetzt?

ich meinte statt
Java:
public boolean isRunning;
ein
Java:
public boolean isRunning = true;
Eigentlich sollte das pausieren dann immernoch gehen.


Achja, noch etwas: Statt dem if-else ginge auch ein:
Java:
isRunning = !isRunning;
was den Wert ja "herumdreht"
 
V

VintageSucks

Gast
oh, jetzt funktioniert es ja doch. keine ahnung was ich eben gemacht habe.

vielen dank für eure hilfe! :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Erste Schritte Generelle Fragen zu Java / Greenfoot. Java Basics - Anfänger-Themen 8
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
M Greenfoot World und Actor Quellcode Java Basics - Anfänger-Themen 13
D incompatible Types Problem in Greenfoot Java Basics - Anfänger-Themen 5
W Schleifen bei Greenfoot Java Basics - Anfänger-Themen 4
Z Greenfoot Variable in einer Datei und nicht in einem Objekt/World speichern Java Basics - Anfänger-Themen 1
A Greenfoot - Objekt im Vordergrund lassen, bei einer scrollbaren Welt ohne zentrierten Actor Java Basics - Anfänger-Themen 3
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2
B Hilfe bei Greenfoot ( random blickrichtung + vor(); Java Basics - Anfänger-Themen 10
BlueFox Greenfoot wait() Java Basics - Anfänger-Themen 10
Domi741 [Greenfoot] Zugriff auf Subclass von Actor in Subclass von World Java Basics - Anfänger-Themen 16
T Wegberechnung mit Greenfoot Java Basics - Anfänger-Themen 10
Q Greenfoot: Art Mario programmieren Java Basics - Anfänger-Themen 7
K Problem mit Greenfoot - aussetzen modellieren? Java Basics - Anfänger-Themen 2
G [Greenfoot] Zeitverzögerung Java Basics - Anfänger-Themen 11
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben