eigenes Event

skoWWi

Grünschnabel
Aaalso nachdem ich ziemlich viel hier rumgesucht hab, konnte ich doch nicht das Passende finden oder hab es zumindest nicht verstanden.

Es geht im Groben darum:
Wir (also zwei Kollegen von mir und ich) wollen ein Programm schreiben, dass von einem Server bestimmte Objekte bekommt und diese enthalten dann Informationen, die beim Client in einer Tabelle dargestellt werden.

Ich bin für die Gui zuständig und ein Kollege für das Netzwerk allgemein.
Die Frage ist jetzt, wenn mein Kollege ein Objekt übers Netzwerk bekommt, möchte er mich mittels eines Events davon benachrichtigen und mir so das Objekt übergeben, damit ich es darstellen kann. Das Problem ist nur, dass ich(wir) keine Ahnung haben, wie wir eigene Events schreiben sollen beziehungsweise implementieren.
Schema:
Server schickt Objekt per Netzwerk an Client Netzwerkklasse, die schickt per event der gui das objekt. (Gui hat ein Objekt der Netzwerkklasse).

so wie mache/n ich(gui) bzw. wir das?

Ich hoffe, dass die Frage nicht zu allgemein ist und vielleicht gibt es ja eine bessere Lösung als Events in dieser speziellen Frage.

Danke schonmal!

mfg skoWWi
 
Hi,
sowas läuft über das Observer Pattern.

Code:
public interface IGUICallback {

public void notify(Object o);
}

Code:
public class GUI implements IGUICallback {
public void notify(Objekt o) {
  // Objekt in GUI darstellen
}
}

Code:
public class Network {
  private IGUICallback callback;

//Event wenn neues Objekt über Netzwerk reinkommt
public void EventBla() {
//GUI soll jetzt informiert werden
callback.notify(o);
}

Die Network Klasse sollte bei der Instanzierung die Referenz der GUI bekommen. Über die Schnittstelle kann dann das darzustellende Objekt weitergegeben werden.

Gruß Patrick
 
Vielleicht benötigt ihr gar kein eigenes Event, sondern könnt mit Observer und Observable arbeiten?

EDIT: Da war wohl einer schneller. Bleibt also nur die Frage, ob man es selbst schreibt, oder ob man den Observer-Pattern-Ansatz verwendet, den Sun bereits "vorgibt".

Gruß hpvw
 
eigentlich recht einfach =) danke!
das werde ich mal ausprobieren.
Ich denke die Nutzung von Events wäre an der Stelle dann wohl unnötig verkomplizierend.
 
Zurück