Interface mouseClicked mit Parametern

Java_Star88

Mitglied
Guten Tag zusammen.

Ich komme leider bei einer Aufgabe nicht weiter...
Die Aufgabe lautet wie folgt:

Die Methode mouseClicked der Klasse Bildschirm soll ein neues Hausobjekt erzeugen und die passende Parameter übergeben. Dabei soll folgende Instanzmethode der Klasse Textfield genutzt werden: public String getText()

Mein Lösungsansatz wäre:

Java:
public class Bildschirm {

       public void mouseClicked() {
       Haus z1;
       z1 = new Haus ( Textfield.getText() )
       }
}

Was sagt ihr dazu?
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
Was sollen wird dazu sagen? Bitte stelle ein konkrete Frage.
Und kläre uns etwas mehr über den Kontext auf (sind die Klassen Bildschirm und Textfield vorgegeben? ...)

Die Klasse heißt Textfield und hat eine Instanzmethode "getText()" dein Aufruf schaut aber nach einem statischen Aufruf auf.
Theoretisch müsste es in Bildschirm eine Instanz der Klasse Textfield geben. Und von dieser Instanz wird die Methode aufgerufen.
 

Java_Star88

Mitglied
Also meinst du so?

Java:
public class Bildschirm {
       public void mouseClicked() {
       Haus z1;
       Textfield text1;
       z1 = new Haus ( Textfield.text1.getText() );
       }
}
 

Joose

Top Contributor
Bitte verwende Code-Tags [java] .. dein code .. [/java] danke :)

Nein so meinte ich das nicht. Jetzt hat du nur lokal in der Methode "mouseClicked" eine Variable deklariert (aber nicht initialisiert, daher bleibt sie null) und willst von dieser eine Methode aufrufen. Da wirst du eine NullPointer Exception bekommen. Außerdem hast du immer noch den Klassennamen vor der Variable stehen, das wäre so zu lesen "die Klasse Textfield hat ein statisches Attribut "text1", von welchem die Methode "getText" aufgerufen wird.

Wie schon im vorherigen Post geschrieben wäre es hilfreich mehr über die Aufgabe und die vorgegeben Klassen zu erfahren. Sind die Klassen Bildschirm und Textfield überhaupt vorgegeben?

Zur Lösung: Dein Klasse Bildschirm muss eine Instanzvariable haben. In der Methode "mouseClicked" rufst du von dieser Instanzvariable die Methode "getText()" auf.
 

Java_Star88

Mitglied
Meinst du das so? Hier ist nochmal die komplette Aufgabe:

In der main Methode der Klasse Anwendung soll ein Bildschirmobjekt erzeugt werden. Die Klasse Bildschirm soll ein Instanzattribut vom Typ "Button" mit dem Bezeichner "h1" haben.

Die Methode mouseClicked der Klasse Bildschirm soll ein neues Hausobjekt erzeugen und die passende Parameter übergeben. Dabei soll folgende Instanzmethode der Klasse Textfield genutzt werden: public String getText()

Java:
public class Bildschirm {
     
Textfield text1;

public void mouseClicked() {
       Haus z1;
       z1 = new Haus (text1.getText() );
       }
}
 

Java_Star88

Mitglied
@Joose du meintest ja das das Ergbenis richtig ausschaut.
Mir ist aber was aufgefallen. Die Aufgabe ist ja, dass die Methode die passenden Parameter übergeben soll.
Also muss nicht in die Klammern der Methode mouseClicked nicht was rein als Importparameter?
 

Joose

Top Contributor
Nach meinem Verständnis soll die Methode "mouseClicked" ein neues Haus Objekt erstellen und dem Haus Objekt die passenden Parameter übergeben.
 

Java_Star88

Mitglied
Ja da hast du recht so habe ich das auch verstanden. Muss jetzt nichts in die Klammern von mouseClicked()??

Java:
public class Bildschirm {
   
Textfield text1;

public void mouseClicked() {
       Haus z1;
       z1 = new Haus (text1.getText() );
       }
}
 

Java_Star88

Mitglied
Ja die Methode muss ja die Parameter übergeben. Übergibt er nicht die Parameter, die in den Klammern als Importparameter definiert werden? Oder so wie wir das gemacht haben? Wird dann auch so die passenden Parameter dem Hausobjekt übergeben?
 

Joose

Top Contributor
Ja die Methode muss ja die Parameter übergeben.
Welche Methode muss die Parameter übergeben?
mouseClicked muss keine Parameter bekommen, das steht nicht in der Aufgabenstellung.

Übergibt er nicht die Parameter, die in den Klammern als Importparameter definiert werden?
Was sind "Importparameter"?
In Java gibt es nur Parameter. Parameter sind die Werte/Objekte welche eine Methode übergeben bekommt.

Oder so wie wir das gemacht haben? Wird dann auch so die passenden Parameter dem Hausobjekt übergeben?
Wir erstellen ein neues Haus Objekt. Um ein neues Objekt zu erstellen müssen wir den Konstruktor der Klasse aufrufen. Dem Konstruktor können wir ebenfalls Parameter übergeben, was wird auch machen.
 

Blender3D

Top Contributor
Meine Vermutung zur Aufgabe:
Nach einem Klick wird der eingegeben Text in TextField ausgelesen mitt get().
Der dort enthaltene String soll die Parameter für das Haus enthalten. -->
mousClicked() liest den String ein und parst die Parameter für das Haus und erzeugt dieses bei korektem Format.
 

Neue Themen


Oben