Kommunikation zwischen Klassen/Objekten

floggie

Mitglied
Hi,

Gibt es einen "einfachen" Weg ein von einer Klasse A erzeugtes Objekt der Klasse B zugänglich zu machen.
Ich habe hier nämlich 2 verschiedene Fenster. In dem einen suche ich einen bestimmten Datensatz heraus von dem Teile zur Erzeugung eines anderen Datensatzes in einer anderen Datenbank verwendet werden sollen. Dies erfordert, dass ich diese Daten von Fenster B nach Fenster A kriege. Nun könnte ich sicher ein Objekt erzeugen dem ich dann mit set-Methoden die Werte übergebe. Die Frage ist nur, wie Fenster A von einem in Fenster B erzeugten Objekt weiss?

I Fenster A -> erzeugt -> Fenster B -> kramt Datensatz aus DB B;
II Fenster B ---?---> gibt Datensatz an ---?---> Fenster A (über ein Objekt?)

Danke schonmal im Vorraus :(

Grüsse

floggie
 
Naja wenn Fenster A Fenster B erzeugt dann hast du ja ein Objekt von Fenster B mit dem du arbeiten kannst. Du schreibst dir dann eine public Methode die dir den Datensatz zurückliefert(in der Klasse für Fenster B)
ungefähr so:
Code:
public class Class2 extends JFrame{
		
		private String datenSatz;
		public Class2(){
			//hier der Jframe kram und co
		}
		public String getDatensatz(){
			return datenSatz;
		}
		
	}
und in Klasse 1 steht dann 
class1.....{
Class2 frame2 = new Class2();
String Datensatz = frame2.getDatensatz();
 
Zuletzt bearbeitet:
ok, und wenn ich statt diesem einen String mehrere Objekte erzeuge und diese zurückgeben möchte? wie würde das dann laufen? Für ein einzelnes Objekt geht das so sicherlich aber was macht man bei mehreren ?


Ausserdem muss ich ja herausfinden wann der Datensatz bereitsteht und ich sinnvollerweise erst getDatensatz aufrufe. Dieser ensteht erst nach einiger User-Interaktion und nicht instantan mit Erzeugeung des Objektes. :-(

Grüsse

floggie
 
Zuletzt bearbeitet:
Naja ich wusste ja nicht wie dein Datensatz augbeaut ist, was du zurücklieferst ist doch egal, es kann eine Collection, ein Array, ein Resultset sein, ja sogar ein Stirngbuffer den du dann wieder zerlegst, das liegt lediglich an dir...
und zu Punkt zwei, nunja da hast du etliche möglichkeiten, du könntest dir einen Eventlistener schreiben und bei Bedarf Events abfeuern(Forum durchsuchen gab es schon ein paar mal wie das man sowas realisiert), du könntest auch auf das Observerpattern zurückgreifen(googeln) oder eine statische Variable anlegen(in Fenster A) und es darein speichern(würde ichaber nicht empfehlen)
 
Hi Elmato,

Danke für die Antworten. Prinzipiell ist mir das schon klar, deshalb stelle ich mal eine andere Frage. Wie kriegt Fenster A mit wenn Fenster B geschlossen wird.

Grüsse

floggie
 
Wie oben beschrieben indem Fenster B z.B. ein Event abfeuert oder Fenster A der Observer von Fenster B ist..
 
sorry!

Habe mir gerade das entsprechende Observer-Kapitel durchgelesen. Ist genau was ich suche. Danke. Nächstmal werde ich erst lesen dann fragen, Ehrenwort. ;)

Grüsse

floggie
 
Zurück