Datenaustausch zwischen JFrame(parent) und JDialog(child)?

ellion

Erfahrenes Mitglied
Hallo ... wiedermal :D

Nachdem ihr mir letztes mal so gut geholfen habt, hab ich schon wieder eine Frage:
Wie kann ich Daten zwischen einem JDialog und einem JFrame austauschen? Der Dialog wird vom Hauptfenster geöffnet und dieser ist (logischerweise) sein Parent. Praktisch sieht es so aus, dass der Benutzer im Dialog einige Sachen in TextFields eingibt und sobald er auf OK klickt diese Daten an das Hauptfenster "geschickt" werden.

Würde mich über Anregungen und Lösungen freuen :D

gruß,
daniel
 
Mein Lösungsvorschlag nimm JOptionPane dort gibt es die Mehtode(n):
public static String showInputDialog( .....)
Es könnte ungefähr so aussehen:
Code:
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class InputDialog {

  public static void main(String argv[]) {
    String input = (String) JOptionPane.showInputDialog(
        new JFrame(),
        "Please enter your favorite Shakespeare play",
        "Title", JOptionPane.INFORMATION_MESSAGE,
        new ImageIcon("java2sLogo.GIF"), null, "Romeo and Juliet");
    System.out.println("User's input: " + input);
  }
}
Das Codebeispiel ist von Java examples
Hoffe das hilft Dir etwas weiter.

Gruß

Luxor
 
Hm, das würde gehen, ist aber nicht sonderlich schön für den Anwender, da er gleich mehrere Sachen angeben muss, die u.a. gar nicht alles selbst eingetragen werden können sondern mit einem anderen Dialog usw. erst gesucht werden müssen. Am besten wäre es, wenn ich bei einem OK auf den parent und seine Elemente zugreifen könnte.

Momentan schreibe ich eine Art Datenaustausch-Klasse, die das alles übernimmt, mal sehen wie das so klappt
 
Moin,
"Datenaustauschklasse" - ich hoffe Du meinst das richtige. ;)
Also ein typisches Beispiel wäre ein Adressbuch. Auf dem Frame wird eine Liste von Einträgen angezeigt. Per Buttonklick öffnet sich ein Dialog, in dem die Daten des ausgewählten Kontaktes bearbeitet werden können. Also gibt es eine Klasse Kontakt. Und die ausgewählte Kontakt-Instanz wird beim Buttonklick an den Dialog übergeben. In dem Dialog werden dann die Variablen der Kontakt-Instanz verändert usw. D.h. beim Schließen des Dialogs gehen die Änderungen nicht verloren, weil sie in dem Kontakt-Objekt vorgenommen wurden, welches ja weiterhin im Frame im Zugriff ist. Man muss lediglich dem Frame mitteilen, dass sich etwas geändert hat.
 
Ja, so hab ich das soweit auch gemacht. Beim schließen wird nun im Parent eine Funktion aufgerufen, die die Daten aktualisiert.

dankeschön :D
 

Neue Beiträge

Zurück