Listener/Event selber machen.

Status
Nicht offen für weitere Antworten.

iNPUTmice

Mitglied
Ich bin nicht 100% sicher, ob ich für mein Problem Listener brauche... aber egal, ich stell meine Frage einfach mal.

edit: Mittlerweile weiß ich, das ich Events brauche. Wie mache ich Events?

Ich habe eine Klasse (Mutterklasse), die eine andere Klasse (Kindklasse) benutzt.
Die Kindklasse wird erst ein bisschen Konfiguriert.
Code:
Kindklasse kind = new Kindeklasse();
kind.config( bla bla bla);
und dann "angeworfen", die Kindklasse arbeitet nun vor sich hin (void) während die Mutterklasse weiterläuft.
Code:
kind.run();
//weiter
Irgendwann ist die Kindklasse fertig, und möchte sein Ergebniss (Ein Objekt) nun an die Mutterklasse zurückleiten.
Zwei Punkte, die Kindklasse muss wissen, "wohin" mit seinem fertigen Objekt und die Mutterklasse muss wissen, wo es das Paket aufzufangen hat.

Ich gehe mal davon aus, das ich in der Kindklasse das Gegenstück zu Listenern rein machen muss (keine Ahnung wie die heissen, und ob es die überhaupt gibt.)
Und in der Mutterklasse muss ein art listener sein, der auf die Kindklasse hört.

Wie mach ich sowas? Möglichst mit kurzen Beispielen (oder Links)

"Die Insel" hatte nichts zu dem Thema, nur was mit GUI, und das brauche ich nicht.

Gruß Daniel
 
G

Guest

Gast
Suche nach Observer-Pattern

Du kannst gleich die hier verwenden

java.util.Observer <--> java.util.Observable
oder
java.beans.PropertyChangeListener <--> java.beans.PropertyChangeSupport
Code:
MutterKlasse implements Observer
{
  //
  public void update(Observable o, Object arg)
  {
    KindKlasse kind = (KindKlasse)arg;

    // kind.removeObserver(this); // evtl. gleich entfernen, wenn's eine einmalige Sache ist
  }
}

KindKlasse
{
  private Observable observable = new Observable();

  public void run()
  {
    ...
    // Observer benachrichtigen
    observable.notifyObservers(this);
  }

  public void addObserver(Observer observer)
  {
    observable.addObsrver(observer);
  }

  public void removeObserver(Observer observer)
  {
    observable.removeObserver(observer);
  }

}

MutterKlasse mutti = ...

KindKlasse bart = ...
bart.addObserver(mutti); 
KindKlasse lisa = ...
lisa.addObserver(mutti);
 
B

Beni

Gast
Du willst ein Observer-Pattern implementieren (die Listener sind sog. Observer). Hier kannst du ein bisschen was darüber lesen.

Grundsätzlich wirst du ein Interface "Listener" erstellen, mit irgendeiner Methode "method". Instanzen dieses "Listener"s sammelst du in einer Liste, und dann kann man in einer Schleife all die "method"s aufrufen.
 

iNPUTmice

Mitglied
Erst einmal danke an euch für die Antworten

Zufrieden stellen die Antworten mich aber leider noch nicht.

Ich schreibe am besten noch mal genau, was ich machen will.
Ich habe die Main.java
Code:
public class Main {
    public static void main(String[] args) {
          SubClass unterklasse = new SubClass();
          unterklasse.config();
          unterklasse.run();
          while (true) {
               //die Klasse läuft endlos weiter
          }
    }
   public doSomething(Object o) {
        //do something
   }
}
und ich habe die SubClass.java
Code:
public class SubClass {
    public config() {
          //unwichtig
    }
   public run() {
        //An dieser Stelle möchte ich nun die doSomething methode in der Main klasse aufrufen
       ........ irgentetwas doSometing(Object)
      mit Main hauptklasse = new Main();
      hauptklasse.doSomething(Objekt) geht das nicht, da auf diese Weise eine Kopie erzeugt wird, oder?
     und ausserdem die Main Klasse nicht immer Main heist.
   }
}

Wer kann mir da helfen? Die Observer können doch nicht richtig sein, oder? Die sind viel zu komisch.... :?
 

André Uhres

Top Contributor
iNPUTmice hat gesagt.:
..Wer kann mir da helfen? Die Observer können doch nicht richtig sein, oder? Die sind viel zu komisch.... :?
Manchmal helfen eben auch Komiker, so wie ich :D
Code:
//package schnipsel4;
/*
 * Main.java
 */
import java.awt.event.*;
import java.util.*;
import javax.swing.Timer;
public class Main implements Observer{
    public Main(){
        SubClass unterklasse = new SubClass();
        unterklasse.addObserver(this);
        unterklasse.config();
        unterklasse.run();
        while (true) {
            System.out.println("Main is running");
            try{Thread.sleep(2000);}catch(InterruptedException ex){break;}
        }
    }
    public void update(Observable o, Object arg) {
        doSomething(arg);
    }
    private void doSomething(Object o) {
        System.out.println(o.toString());
    }
    public static void main(String[] args) {
        new Main();
    }
}
class SubClass extends Observable {
    public void config() {
        System.out.println("config");
    }
    public void run() {
        System.out.println("run");
        timer.start();
    }
    private void esPassiertWasMitDenDaten() {
        timer.stop();
        setChanged();
        notifyObservers("doSomething");
    }
    private Timer timer;{
        timer = new Timer(3000, new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                esPassiertWasMitDenDaten();
            }
        });
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Wie: Eigener Listener, eigenes Event (möglichst einfach) Allgemeine Java-Themen 29
berserkerdq2 Was heißt es mit FXML Listener zu setzen ind Buttons zu erstellen? Allgemeine Java-Themen 6
L Wie programmiert man einen Listener? Allgemeine Java-Themen 1
S Threads Serielle Schnittstelle mit Listener / Aufrufendes GUI Allgemeine Java-Themen 4
H Listener Verständnisproblem Allgemeine Java-Themen 5
D Action Listener Problem Allgemeine Java-Themen 3
S Key Listener mit Strg + s Allgemeine Java-Themen 12
K Threads Listener für Future finish Allgemeine Java-Themen 2
TheWhiteShadow Listener Reihenfolge Allgemeine Java-Themen 4
D Listener auf System.out.err / System.out.println Allgemeine Java-Themen 5
A Listener für constructor einer bestimmen Klasse Allgemeine Java-Themen 9
E Bild mit Listener einfügen Allgemeine Java-Themen 3
P Listener für Tastatureingaben ohne Focus Allgemeine Java-Themen 4
serjoscha WatchDog Thread und Listener Allgemeine Java-Themen 10
hdi Listener für Desktop-Veränderungen Allgemeine Java-Themen 7
T JTextField in Listener leeren Allgemeine Java-Themen 2
lenniii Listener & JList Allgemeine Java-Themen 3
K Key listener ohne Fokus aktiv behalten ? Allgemeine Java-Themen 12
G Code-Convention für Listener Allgemeine Java-Themen 2
T Observer vs Listener Allgemeine Java-Themen 18
S Listener Allgemeine Java-Themen 3
P Abstrakte Elternklasse als Listener Allgemeine Java-Themen 6
MQue KeyAction listener Allgemeine Java-Themen 2
M generische Listener Allgemeine Java-Themen 2
S Listener für Kalender Allgemeine Java-Themen 2
B Observer vs Listener (GUI-Programmierung) Allgemeine Java-Themen 5
J Listener für Ende eines Threads gesucht... Allgemeine Java-Themen 5
S Listener Implentierung bei Eingabe in Textfeld Allgemeine Java-Themen 2
G Objekt einer inneren Klasse als Listener Allgemeine Java-Themen 3
D Boolean Listener? Allgemeine Java-Themen 28
M Listener und Performance Allgemeine Java-Themen 9
D Observer/Observable Pattern vs. Listener-Konzept Allgemeine Java-Themen 4
G Listener auf aktuelles Datum / Uhrzeit Allgemeine Java-Themen 2
Escorter Eigenen Listener schreiben Allgemeine Java-Themen 3
E Gibt es so etwas wie einen Windows Listener? Allgemeine Java-Themen 6
T SelectionProvider und Listener Frage Allgemeine Java-Themen 14
I Listener, der zeitlich-periodisch aufgerufen wird Allgemeine Java-Themen 3
R Generische Listener und Sender Allgemeine Java-Themen 12
B Listener dynamisch setzen Allgemeine Java-Themen 6
A Listener Tastatur Allgemeine Java-Themen 3
D Thread vs Listener Allgemeine Java-Themen 6
K Listener einem Objekt hinzufügen Allgemeine Java-Themen 3
S Listener-Problematik in komplexem Projekt Allgemeine Java-Themen 2
M Time Listener ? Allgemeine Java-Themen 2
Z Zwei Listener zwischen zwei Klassen Allgemeine Java-Themen 4
B statusbar update -> mit thread oder listener? Allgemeine Java-Themen 7
M Action-listener Allgemeine Java-Themen 6
M Bean Listener hinzufügen und Methode später überschreiben Allgemeine Java-Themen 27
G Flavor-Listener Allgemeine Java-Themen 6
E Listener für Änderung der Fenstergröße Allgemeine Java-Themen 3
W Listener an ein beliebiges Objekt hänger, der mir Änderung Allgemeine Java-Themen 8
Z Problem beim Aufruf eines Listener? Allgemeine Java-Themen 4
A HILFE: subclass von Hashtable mit listener aufstellen Allgemeine Java-Themen 5
G Key-Event-Sender Allgemeine Java-Themen 5
E Datei verschoben Event Allgemeine Java-Themen 3
D Event Sourcing umsetzen Was? Wie? Allgemeine Java-Themen 33
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
M Best Practice Alternativen für Event-Handling Allgemeine Java-Themen 3
C Zugriff auf Event felder Allgemeine Java-Themen 0
Bananabert Interface Custom 'Event' mit Interface Allgemeine Java-Themen 10
das-mo Warten auf Event Allgemeine Java-Themen 7
K Event benutzen Allgemeine Java-Themen 4
F None-GUI-Event Handling Allgemeine Java-Themen 3
D mouseMove in mouseMotionListener-Event Allgemeine Java-Themen 3
R Klasse über Button Event in anderer Klasse informieren Allgemeine Java-Themen 11
K event dispatch thread fehler. Compiler meckert nicht aber der Interpreter? Warum?? Allgemeine Java-Themen 11
A Relative Mausposition ohne Event Allgemeine Java-Themen 2
V Priorität der Event-Handlings setzen Allgemeine Java-Themen 4
algorismi int-variable Value Change event Allgemeine Java-Themen 3
slawaweis Suche Klassen für Event Managment und Time Allgemeine Java-Themen 2
B Window Closing Event Allgemeine Java-Themen 3
A Event Handler Allgemeine Java-Themen 5
H Event ähnliches System Allgemeine Java-Themen 20
G XML Event --> Befüllen einer Node Allgemeine Java-Themen 2
Q Dateizugriff mitbekommen - file change event Allgemeine Java-Themen 13
W eigene event-Klasse, event posten Allgemeine Java-Themen 2
M Speichern von Word als Event abfangen Allgemeine Java-Themen 7
P Event-Handling mit JSP Allgemeine Java-Themen 7
MQue public void serialEvent(SerialPortEvent event) Allgemeine Java-Themen 4
MQue Button Event beim drücken und beim auslassen Allgemeine Java-Themen 7
T OutputStream - Event bei Byte-Fluss Allgemeine Java-Themen 5
E Button: Event auslösen Allgemeine Java-Themen 7
B event kunstlich auslösen Allgemeine Java-Themen 8
R Dasselbe Event zweimal aufgefangen? Allgemeine Java-Themen 10
D Thread durch Mouse-Event beenden Allgemeine Java-Themen 5
S methode stoppen / auf ein event warten Allgemeine Java-Themen 5
G Key Event Allgemeine Java-Themen 2
B Thread soll auf Event warten, dann Daten an Klasse senden Allgemeine Java-Themen 2
G konsolenanwendung durch key event beenden Allgemeine Java-Themen 4
M Event Queues in Java? Allgemeine Java-Themen 10
G Problem Canvas Mouse Event Allgemeine Java-Themen 7
J ToolTipText Event abfangen Allgemeine Java-Themen 5
A Endlosschleife + Event Allgemeine Java-Themen 7
G EHM EVENT handling ? Allgemeine Java-Themen 5
C Menü & event Allgemeine Java-Themen 4
C event weiterreichen Allgemeine Java-Themen 3
NoahPillich Navigations-App und Wegfindung selber programmieren - Erfahrungen, Ideen, Anregungen Allgemeine Java-Themen 6
N 3D-Grafik 3D Grafik selber bauen Allgemeine Java-Themen 0

Ähnliche Java Themen

Neue Themen


Oben