Compiler-Fehler Not a statement Error

NickJo

Mitglied
Moin, ich habe einen Maus listener erstellt und eine "Leinwand", der dieser listener zugewiesen werden soll:

Java:
public void mausDetektor() {
        mausdetektor = new Mausereignisse();
        fenster.addmausdetektor;
    }

Der Compiler unterstreicht mir immer den Punkt zwischen "fenster" und "addmausdetektor" und sagt mir "Error: not a Statement". Kann mir da jemand helfen?
 

temi

Top Contributor
Vermutlich heißt die Methode add() und der Parameter ist "mausdetektor". Es fehlen also Klammern.

Oder die Methode heißt addmausdetektor(), dann fehlen auch Klammern.
 

KonradN

Super-Moderator
Mitarbeiter
Einfach einmal etwas ausführlicher:

Wenn man sich fenster.addmausdetektor ansieht, dann ist das kein Java Statement. Java Statements gibt es einige ... Zuweisungen, Methodenaufrufe, die Statements von Java wie if, switch, ...

Ein Konstrukt wie fenster.addmausdetektor könnte ein Feld bezeichnen. Aber ein Feld alleine ist kein Statement. Ein Statement macht imme etwas. Wenn es so ein Feld gäbe, dann müsste man damit etwas machen. ALso man könnte dann eine Zuweisung machen oder so....

Aber wie @temi schon richtig geschrieben hat: Vermutlich willst Du einfach nur eine Methode add aufrufen. Also fenster.add(....) - das wäre ein Statement, da ein Methodenaufrufr ein Statement ist.
Die ... müssen natürlich durch die Parameter ersetzt werden. Das ist vermutlich der mausdetektor, so dass Du ein fenster.add(mausdetektor); haben möchtest.
 

NickJo

Mitglied
Einfach einmal etwas ausführlicher:

Wenn man sich fenster.addmausdetektor ansieht, dann ist das kein Java Statement. Java Statements gibt es einige ... Zuweisungen, Methodenaufrufe, die Statements von Java wie if, switch, ...

Ein Konstrukt wie fenster.addmausdetektor könnte ein Feld bezeichnen. Aber ein Feld alleine ist kein Statement. Ein Statement macht imme etwas. Wenn es so ein Feld gäbe, dann müsste man damit etwas machen. ALso man könnte dann eine Zuweisung machen oder so....

Aber wie @temi schon richtig geschrieben hat: Vermutlich willst Du einfach nur eine Methode add aufrufen. Also fenster.add(....) - das wäre ein Statement, da ein Methodenaufrufr ein Statement ist.
Die ... müssen natürlich durch die Parameter ersetzt werden. Das ist vermutlich der mausdetektor, so dass Du ein fenster.add(mausdetektor); haben möchtest.
Schon mal danke, die Antwort hilft mir aber leider nur bedignt. Vielleicht hätte ich mein Problem ausformulieren sollen:
Ich habe als Aufgabe, einen Raumplaner zu erstellen mit verschiebbaren Möbelstücken. Ich habe bisher eine Leinwand die funktioniert und einen Mauslistener, der funktioniert.
Das Problem was ich jetzt habe ist, dass ich es nicht hinkriege, dass der Mauslistener der Leinwand zugefügt wird. Ich hatte im Unterricht glaube ich irgendwas in die Richtung aufgeschnappt, dass man das so machen kann, wie ich das oben gemacht habe (also einfach add vor den Namen der Methode, fürs Verständnis: "Mausereignisse" ist die Klasse mit dem Mauslistener und "fenster" ist ein JFrame ). Wenn das nicht geht, hier
eine neue Frage:
Wie kann ich dafür sorgen, dass die Klasse, die Mausereignisse registriert in dem gleichen Fenster arbeitet, wie die Klasse Leinwand? Oder gibt es eine Möglichkeit wo das gar nicht erst so sein muss?
 

KonradN

Super-Moderator
Mitarbeiter
Ok, wenn Du also mit Mausereignisse eine Klasse hast, die MausListener implementiert und fenster ein JFrame ist, dann gibt es die Methode addMouseListener.

Siehe dazu die Dokumentation unter: https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/swing/JFrame.html
addMouseListener ist geerbt von Component, daher findest Du es da in der Auflistung. Ein KLick drauf bringt Dich zu:

Da würde der Code dann so aussehen:
Java:
public void mausDetektor() {
        mausdetektor = new Mausereignisse();
        fenster.addMouseListener(mausdetektor);
    }

Also nicht ganz wie das, wa sgeraten wurde aber vom Prinzip her das gleiche: Die methode heisst assMouseListener und will als Parameter ein MouseListener. Die Methode wird also richtig geschrieben und in Klammern kommt dann das, was du übergeben willst.
 

NickJo

Mitglied
Ahhh, jetzt habe ich aber den Fehler "Undeclared variable" beim "mausdetektor". Ich dachte die wird damit definiert als Mausereignisse?
Ok, wenn Du also mit Mausereignisse eine Klasse hast, die MausListener implementiert und fenster ein JFrame ist, dann gibt es die Methode addMouseListener.

Siehe dazu die Dokumentation unter: https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/swing/JFrame.html
addMouseListener ist geerbt von Component, daher findest Du es da in der Auflistung. Ein KLick drauf bringt Dich zu:

Da würde der Code dann so aussehen:
Java:
public void mausDetektor() {
        mausdetektor = new Mausereignisse();
        fenster.addMouseListener(mausdetektor);
    }

Also nicht ganz wie das, wa sgeraten wurde aber vom Prinzip her das gleiche: Die methode heisst assMouseListener und will als Parameter ein MouseListener. Die Methode wird also richtig geschrieben und in Klammern kommt dann das, was du übergeben willst.
 

temi

Top Contributor
Fehler "Undeclared variable" beim "mausdetektor"
Es fehlt die Typangabe vor der Variablen "mausdetektor", wie es die Fehlermeldung ja auch sagt: "nicht deklarierte Variable".

EDIT: Alternativ, würde auch Folgendes funktionieren:
Java:
fenster.addMouseListener(new Mausereignisse());
Die mit new erzeugte Instanz der Klasse Mausereignisse wird hier direkt als Parameter verwendet, ohne sie vorher in einer zusätzlichen Variablen zwischenzuspeichern.
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Bei Variablen gibt es zwei wichtige Dinge:
a) Deklaration: Das definiert eine Variable. Dabei wird ein Typ mit angegeben. Also etwas wie Mausereignisse mausdetektor.
b) Zuweisung zu / Initialisierung einer Variable - das wäre dann etwas wie mausdetektor = new Mausereignisse();

Das kann man dann auch kombinieren zu Mausereignisse mausdetektor = new Mausereignisse();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
H Compiler-Fehler error not a statement Java Basics - Anfänger-Themen 2
B Not a statement error Java Basics - Anfänger-Themen 2
B Error:not a statement FEHLER bei * Java Basics - Anfänger-Themen 3
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
A switch statement Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2
C java.sql Statement kann nicht geschlossen werden Java Basics - Anfänger-Themen 9
freudianslip if-Statement mit mehreren Zahlenwerten Java Basics - Anfänger-Themen 4
J Missing Return Statement Java Basics - Anfänger-Themen 11
J if or statement? Java Basics - Anfänger-Themen 2
P if - Statement erkennt variable nicht. Java Basics - Anfänger-Themen 12
T Not a Statement/Illegal Start of expression bei for Anweisung Java Basics - Anfänger-Themen 6
L Variable in If-Statement initialisieren Java Basics - Anfänger-Themen 4
B Problem bei switch statement Java Basics - Anfänger-Themen 4
M Return statement Java Basics - Anfänger-Themen 4
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
K Input/Output If-Statement wird übersprugen Java Basics - Anfänger-Themen 5
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
P fibonacci - do while Statement Logik Fehler Java Basics - Anfänger-Themen 5
T Problem im If-Else-Statement Java Basics - Anfänger-Themen 4
SexyPenny90 Why "Empty Statement"?!? Java Basics - Anfänger-Themen 2
O IF-Statement wird nicht ausgeführt Java Basics - Anfänger-Themen 7
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
M SQL Statement Problem Java Basics - Anfänger-Themen 22
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
I Problem mit H2-DB Insert-Statement Java Basics - Anfänger-Themen 3
A Assert statement Java Basics - Anfänger-Themen 3
M missing return statement?! Java Basics - Anfänger-Themen 4
J Prepared Statement Out of BondsException Java Basics - Anfänger-Themen 4
P Compiler-Fehler unreachable statement Java Basics - Anfänger-Themen 4
A Missing return-Statement Java Basics - Anfänger-Themen 9
T missing return statement Java Basics - Anfänger-Themen 36
P OOP unreachable statement - Fehler? Java Basics - Anfänger-Themen 3
E missing return statement Java Basics - Anfänger-Themen 6
H not a statement meldungen Java Basics - Anfänger-Themen 12
F import Statement für Klassen die dem default Package zugeordnet sind? Java Basics - Anfänger-Themen 2
B Not a Statement Problem Java Basics - Anfänger-Themen 8
S Not a Statement? Java Basics - Anfänger-Themen 10
C missing return statement Java Basics - Anfänger-Themen 5
K SQL Statement formatieren + Swingzeug auslagern Java Basics - Anfänger-Themen 18
dognose missing Return Statement Java Basics - Anfänger-Themen 4
H Funktion erkennt das return-statement nicht Java Basics - Anfänger-Themen 12
G [Hibernate] Aus SQL-Statement Entities erzeugen Java Basics - Anfänger-Themen 2
M Callable Statement mit Variablen Java Basics - Anfänger-Themen 8
A SQL Create Table Statement Java Basics - Anfänger-Themen 19
T if-then statement soll nur Zahlen zulassen Java Basics - Anfänger-Themen 12
G Missing return Statement Java Basics - Anfänger-Themen 2
S prepared statement delete Java Basics - Anfänger-Themen 5
J Statement an MySQL Datenbank schicken Java Basics - Anfänger-Themen 4
L INSERT Statement geht nicht HILFE! Java Basics - Anfänger-Themen 2
I call to super must be first statement in constructor Java Basics - Anfänger-Themen 3
L IF Bedingung in SELECT Statement? Java Basics - Anfänger-Themen 3
R "missing return statement"? Java Basics - Anfänger-Themen 2
S prepared statement Java Basics - Anfänger-Themen 10
G SQL Statement Java Basics - Anfänger-Themen 4
J Variable Werte in einem SQL Statement? Java Basics - Anfänger-Themen 8
G Inhalt Textfield in SQL Statement klappt nicht. Java Basics - Anfänger-Themen 2
F Missung Return Statement Java Basics - Anfänger-Themen 10
G Button und SQL-Statement ausführen Java Basics - Anfänger-Themen 6
H Variable zuweisung in einem If-Statement Java Basics - Anfänger-Themen 3
J return- Statement Java Basics - Anfänger-Themen 3
G missing return statement Java Basics - Anfänger-Themen 5
S Problem mit if-Statement Java Basics - Anfänger-Themen 5
G Array und switch-Statement Java Basics - Anfänger-Themen 4
R kurzes if-then-else statement Java Basics - Anfänger-Themen 8
M missing return statement Java Basics - Anfänger-Themen 4
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
monsterherz error: <identifier> expected Java Basics - Anfänger-Themen 2
R Compiler-Fehler identifier error? Java Basics - Anfänger-Themen 3
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
richrich99 error: illegal start of expression Java Basics - Anfänger-Themen 10
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
N Compiler-Fehler State Machine - Compiler Error Java Basics - Anfänger-Themen 48
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
H Versteht jemand diesen Codewars Error? Java Basics - Anfänger-Themen 8
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
Gaudimagspam Compiler Error Java Basics - Anfänger-Themen 3
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
A Scanner-Error Java Basics - Anfänger-Themen 8
Elyt Error: incompatible types Java Basics - Anfänger-Themen 3
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
Kirby.exe Alle möglichen Error Möglichkeiten abfangen Java Basics - Anfänger-Themen 33
C error: <identifier> expected Java Basics - Anfänger-Themen 13
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
N Methoden Unerklärliche Error Meldung Java Basics - Anfänger-Themen 3
ZH1896ZH Datentypen Error bei For-Schleife Java Basics - Anfänger-Themen 2
R Error, wenn mehrere Clients gleichzeitig die Verbindung beenden Java Basics - Anfänger-Themen 16
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
9 Error bei .split() Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben