Ich habe dir mal in die Jar-Datei im Anhang etwas ausführbaren Testcode gelegt. So ungefähr kann man Fenster mit einander kommunizieren lassen. Ob das un das ist, was du suchst…?
Wenn nicht, solltest du deine Frage etwas präzieser formulieren.
Es sind zwei Klassen. Für dieses Beispiel habe ich kein POJO o.ä. zur Datenhaltung genutzt, wäre aber damit auch kein Problem.
Der Quellcode liegt in der Jar-Datei im Verzeichnis src. Also mit einem Packprogramm öffnen.
Zunächst mal sollte eine Anwendung immer nur einen JFrame haben (das Hauptfenster), alle anderen Fenster sollten JDialoge oder JOptionPanes sein.
Um einen User zu erzeugen könnte man ein leeres User-Objekt im Hauptfenster erzeugen und es via Konstruktor in den Dialog übergeben, wo es mit den set()-Methoden gefüllt wird. Anschließend kann es an das Hauptfenster zurückgegeben werden.
Denkbar wäre auch, dass der Dialog einfach ein gefülltes Objekt an das Hauptfenster zurückgibt. owner.setLoginData(new User(userNameTF.getText(), passwdF.getPassword()));
Ich habe oben mal die Jar-Datei entsprechend aktualisiert.
Aber ich habe immer noch meine programmierweise vom .Net im hintergrund. Da war es möglich eine Klasse z.b. “user”
von jeden objekt (gui) aus zu füllen und auch abzufragen ohne es vorher neu instanziert zu haben. Es handelt sich dabei nicht um eine static class.
Man kann sagen so eine klasse zum zwischenspeichern von infos. Ist das denn in java net möglich.
Es scheint mir ein wenig umständlich eine klasse die überall bekannt ist und diese von A nach B zurück gibt.
In Java gibt es nichts anderes, da wird alles über Referenzen gemacht. Wie heißt das Konzept in .NET?
Man kann auch im Dialog, in dem der Benutzer seine Daten für den Login eingibt, eine lokale Klasse (User) einbetten, deren gefülltes Objekt dann an das Hauptfenster zurückgeliefert wird.
Lösungen gibt es viele, es gilt eine passende und elegante Lösung zu finden.
Entweder er meint ein interface, welches sich in java genauso verhält, oder er hat eine Klasse als DLL abgespeichert. Keine Ahnung. Ziemlich schwammig das Ganze.
[QUOTE=L-ectron-X]Zunächst mal sollte eine Anwendung immer nur einen JFrame haben (das Hauptfenster), alle anderen Fenster sollten JDialoge oder JOptionPanes sein.
Um einen User zu erzeugen könnte man ein leeres User-Objekt im Hauptfenster erzeugen und es via Konstruktor in den Dialog übergeben, wo es mit den set()-Methoden gefüllt wird. Anschließend kann es an das Hauptfenster zurückgegeben werden.
Denkbar wäre auch, dass der Dialog einfach ein gefülltes Objekt an das Hauptfenster zurückgibt. owner.setLoginData(new User(userNameTF.getText(), passwdF.getPassword()));
Ich habe oben mal die Jar-Datei entsprechend aktualisiert.[/QUOTE]
ich kann die datei nicht öffnen. kannst du den text vielleicht hier posten?
danke
Was meinst du mit “nicht öffnen”?
Die Jar-Datei ist ausführbar. Doppelklick und das Programm startet. Sollte das bei dir nicht funktionieren kannst du es auch in der Kommandozeile starten: java -jar MainFrame.jar
Wenn du den Quelltext sehen wolltest: der ist in der Jar-Datei enthalten. Also, herunterladen, jar in zip umbenennen und mit einem ganz normalen Packprogramm entpacken.
Hallo L-ectron-X,
ja letzte Woche konnte ich die Datei nicht mal runterladen.
Heute hat es geklappt mit runterladen, aber beim öffnen erhalte ich lediglich ein leeres Fenster. ???
zu meinem Problem:
Ich suche eine Möglichkeit wie ich Daten von einem JFrame zum anderen JFrame übertragen kann.
In meinem Java Programm werden zwei Instanzen gebildet (quasi für zwei Player) und die Felder welche in einem JFrame markiert sind, sollen auch automatisch in der anderen Instanz des JFrames markiert werden.
War hoffentlich klar genug.
Vielen Dank schon mal im voraus …
Sieh dir das Programm genau an. Es hat eigentlich nur eine Funktion: einen Benutzer anmelden. Der Benutzername wird vom Anmelde-Dialog ins Hauptfenster transferiert.
Das ist vermutlich nicht genau, was du willst.
Du schreibst ein Schiffeversenken?
Du brauchst wohl in deinem Fall eine Klasse, die den Transfer organisiert. Sie muss beide JFrames kennen. BTW sollte eine Anwendung immer nur einen JFrame (Hauptfenster) haben.
Danke,
das geht in die Richtung zur Lösung meines Problems, ich werde damit mal etwas experimentieren und schauen ob klappt.
P.S.: nicht Schiffe versenken
wenn es geklappt hat gebe ich nochmal Feedback.
[QUOTE=zaag]zu meinem Problem:
Ich suche eine Möglichkeit wie ich Daten von einem JFrame zum anderen JFrame übertragen kann.
In meinem Java Programm werden zwei Instanzen gebildet (quasi für zwei Player)[/QUOTE]Wenn @L-ectron-X recht hat suchst Du eigentlich nach einem Datenaustausch via Netzwerk. Was macht es denn für einen Sinn, wenn die beiden Fenster auf dem selben Rechner zu sehen sind?
:)OK. Also: Ich habe TicTacToe Programmiert, ist ja soweit ganz simpel. Möchte ich aber, dass man das mit 2 Playern Spielen kann, natürlich auf zwei unterschiedlichen Rechnern. Idealfall ist das es nur übers Internet mit den beiden Playern Kommuniziert.
Das ist im großen und ganzen das Hauptproblem.