Steffen Flämig: Verständnisproblem bei Event<>Listener Konzept

Hallo,

ich versuche mich gerade in Java einzuarbeiten. Es scheint mir, dass ich
das Konzept des Informationsaustauschs zwischen verschiedenen Objekten
nicht richtig verstehe.

Mein Problem:

Ich habe innerhalb eines JFrame zwei Objekte erzeugt:
Eines von der Klasse Canvas (nennen wir es MyCanvas), eines von der
Klasse JLabel (z.B. MyJLabel) abgeleitet.

Das Objekt MyCanvas hat nun z.B. eine Methode die etwas berechnet.
Das Ergebnis dieser Berechnung soll nun als Text in dem anderen
Objekt MyJLabel erscheinen.

Es tritt also ein Ereignis im Objekt MyCanvas (berechnen eines Wertes)
und es soll eine Action im Objekt MyJLabel ausgeführt werden.

Wo (und wie) muss jetzt der AcionListener hin oder haben ich mich in
meinen Gedanken jetzt ganz verstiegen und das geht _so_ überhaupt nicht?

Ach ja, die Berechnung in MyCanvas wird durch ein Klicken mit der
Maus auf selbigen ausgelöst. Die dabei ausgelöste Berechnung ruft
sich aber u.U. mehrmals rekursiv selbst auf. Die Anzeige auf MyJLabel
kann deshalb nicht vom Mausereignis ausgelöst werden.

MfG Steffen

  1. Hallo,

    Ich habe innerhalb eines JFrame zwei Objekte erzeugt:
    Eines von der Klasse Canvas (nennen wir es MyCanvas), eines von der
    Klasse JLabel (z.B. MyJLabel) abgeleitet.

    Das Objekt MyCanvas hat nun z.B. eine Methode die etwas berechnet.
    Das Ergebnis dieser Berechnung soll nun als Text in dem anderen
    Objekt MyJLabel erscheinen.

    Es tritt also ein Ereignis im Objekt MyCanvas (berechnen eines Wertes)
    und es soll eine Action im Objekt MyJLabel ausgeführt werden.

    Wo (und wie) muss jetzt der AcionListener hin oder haben ich mich in
    meinen Gedanken jetzt ganz verstiegen und das geht _so_ überhaupt nicht?

    also wenn ich dich richtig verstehe, hast du dich wohl wirklich in etwas "verstiegen" (was immer das auch bedeuten mag *G)
    Das einzige Event, das jetzt noch von Iteresse ist, ist das Ende der Berechnung. Sobald das Ergebnis bereit steht, setzt du  mit MyJLabel.setText(ergebnis.toString()) den neuen Wert.

    Gruß,
    Arthur D.

    --
    >> So long, and thanks for all the fish. <<
    1. Hallo Arthur,

      Ich habe innerhalb eines JFrame zwei Objekte erzeugt:
      Eines von der Klasse Canvas (nennen wir es MyCanvas), eines von der
      Klasse JLabel (z.B. MyJLabel) abgeleitet.

      Das Objekt MyCanvas hat nun z.B. eine Methode die etwas berechnet.
      Das Ergebnis dieser Berechnung soll nun als Text in dem anderen
      Objekt MyJLabel erscheinen.

      Das einzige Event, das jetzt noch von Iteresse ist, ist das Ende der Berechnung. Sobald das Ergebnis bereit steht, setzt du  mit MyJLabel.setText(ergebnis.toString()) den neuen Wert.

      Das müsste ich aber doch inerhalb einer Methode von MyCanvas machen. Aber von dort aus ist doch MyJLabel nicht sichtbar.

      MfG Steffen