getSource-Aufruf - problematisch

Moin!

Mit dem getSource-Aufruf komme ich nicht weiter und finde den Fehler irgendwo nichts.
Jedoch ist eine Fehlermeldung auf mich zugekommen. seufz

Mosaik.java, hier:

import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;

public class Mosaik extends Applet implements MouseListener {

   int raster;
   
   public void init() {
      String temp = getParameter("raster");
      raster=Integer.parseInt(temp);
      setLayout(new GridLayout(raster, raster));
      for (int i=0; i<raster; i++) {
        for (int j=0; j<raster; j++) {
           MosaikCanvas mc = new MosaikCanvas(i, j, new Color(255, 0, 0), new Color(0, 255, 0));
        mc.addMouseListener(this);
      add(mc);
        }
      }
   }
   
   //die fünf MouseListener Methoden
   public void mouseClicked(MouseEvent me) {   }
   public void mouseEntered(MouseEvent me) {   }
   public void mouseExited(MouseEvent me) {   }
   public void mousePressed(MouseEvent me) {   }
   public void mouseReleased(MouseEvent me) {   }

   ((MosaikCanvas).me.getSource()).switchSeite();
}```
Nur bei ```((MosaikCanvas).me.getSource()).switchSeite();```
tritt eine Fehler auf und wie es aussieht:
[IMG]http://www.fotos-hochladen.net/fehlerc3ojfn5r.jpg[/IMG]

Eine Datei namens MosaikCanvas.java ist nach dem Kompilieren fehlerfrei! 

Ich hoffe, dass jemand hier was fehlerhaftes oder irgendetwas herausfinden kann. 

Übrigens, ich muß den Lernheft nochmal nachschlagen, weil ich damit
nicht klar gekommen bin. Daher muß ich das noch genauer unter Lupe
nehmen. :confused:

Ohne jetzt näher deinen Code studiert zu haben, aber das hier „((MosaikCanvas).me.getSource()).switchSeite();“ gehört auch in eine Methode und nicht einfach so in die Klasse geworfen :wink: .

nein das passt, aber der . vor me ist falsch :wink:

Punkt vor me soll raus sein, dann soll es klappen?

jep, weil der Punkt dient als Verbinder zwischen Objekt (Links) und Methode (Rechts) und an der Stelle hast du kein Objekt
Du castest da ja nur

Ok, das werde ich heute abend machen, da ich mich gerade bei der Arbeit befinde. :wink:
Wenn da was ergibt, melde ich mich dann.

Hä? Bin ich doof? Das ((MosaikCanvas).me.getSource()).switchSeite(); steht doch mitten in der Pampa!? Punkt muss trotzdem weg, ja :slight_smile: .

Nach dem ich ein Punkt vor me rausgenommen habe und Mosaik.java schließlich kompiliert habe,
ist eine Fehlermeldung auch wieder gekommen. Ist gleich wie oben. grümmel

((MosaikCanvas)me.getSource()).switchSeite();

Es funktioniert! Das war mein Fehler!

Vor war “Applet” - jetzt “java.applet.Applet”
public class Mosaik extends java.applet.Applet implements MouseListener
Und in der Methode public mouseReleased(MouseEvent me) habe ich dazwischen eingefügt!
public void mouseReleased(MouseEvent me) { ((MosaikCanvas)me.getSource()).switchSeite(); }

So geht’s!

[QUOTE=yampi]Vor war „Applet“ - jetzt „java.applet.Applet“
public class Mosaik extends java.applet.Applet implements MouseListener[/QUOTE]

Applet tuts auch, wenn du es denn vorher importierst. Warum eigentlich kein JApplet?

[QUOTE=yampi;11727]Und in der Methode public mouseReleased(MouseEvent me) habe ich dazwischen eingefügt!
public void mouseReleased(MouseEvent me) { ((MosaikCanvas)me.getSource()).switchSeite(); }
[/QUOTE]

Das war genau das, was ich angesprochen hatte :wink: .

Das merke ich mir mal vor. :wink:

Das mit „getSource“ ist mir ein bisschen nicht klar! Ich suche ein paar Beispiele damit.
Kennt einer von euch, in welcher Quelle das sich befindet? Das wäre super.

Im Netzt gibt es jede Menge englischer Tutorials, aber ich glaube du bevorzugst Deutsch, nicht wahr?
Wenn du mal erklärst, was dir im Zusammenhang mit getSource() unklar ist, können wir das hier klären.

Ja, das bevorzuge ich, damit ich es richtig im Griff haben kann.
Ich kann es auch in englischer Sprache verstehen.

Was ist denn jetzt unklar?

Das mit “getSource” - ich wollte damit sagen, was ich wissen wollte,
wofür man das braucht. Da überlege ich noch, was damit sein sollte.

getSource liefert dir die Komponente zurück, die das Event ausgelöst hat.