# Interface mouseClicked mit Parametern



## Java_Star88 (16. Feb 2016)

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:


```
public class Bildschirm {

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

Was sagt ihr dazu?


----------



## Joose (16. Feb 2016)

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 (16. Feb 2016)

Also meinst du so?


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


----------



## Joose (16. Feb 2016)

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 (16. Feb 2016)

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()


```
public class Bildschirm {
     
Textfield text1;

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


----------



## Joose (16. Feb 2016)

Ja das schaut richtig aus


----------



## Java_Star88 (18. Feb 2016)

@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 (18. Feb 2016)

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


----------



## Java_Star88 (18. Feb 2016)

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


```
public class Bildschirm {
   
Textfield text1;

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


----------



## Joose (18. Feb 2016)

Ich habe nirgends wo was davon gelesen das die Methode "mouseClicked" Parameter haben soll/muss.


----------



## Java_Star88 (18. Feb 2016)

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 (18. Feb 2016)

Java_Star88 hat gesagt.:


> 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.



Java_Star88 hat gesagt.:


> Ü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.



Java_Star88 hat gesagt.:


> 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.


----------



## Java_Star88 (18. Feb 2016)

ok Danke für die Hilfe


----------



## Blender3D (18. Feb 2016)

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.


----------

