Nachrichtenaustausch zwischen zwei Fenstern

melmager

Erfahrenes Mitglied
Also ich habe ein Hauptfenster von dem ich mit einem Button ein Zweitfenster öffne - soweit so gut.

Jetzt frage ich mich wie ich zwischen den Fenstern Nachrichten und Daten auszutauschen soll.

Am liebsten mit Events, Ich klicke im Hauptfenster was dort ja ein MausEvent auslöst und dort sollen ein paar Daten erzeugt werden die dann an das Zweitfenster übergeben werden soll.
Dies Übergabe währe schön wenn man das Zweitfenster mit einem Event davon in Kenntnis setzen könnte da ist was - und dann "fragt sich wie" die Daten abholt

Dort bearbeite ich die Daten die dann zurück müssen.
Die Daten die da ausgetauscht werden sollen sind Strings.

Zurück in Umgekehrter Reihenfolge - ich sage im Nebenfenster "fertig" - löste ein Event im Hauptfenster aus und übergebe die veränderten Daten

Das ganze soll ein Editor Fenster werden

Java:
 // erzeuge zweites Frame
 javax.swing.JFrame EditFrame = new javax.swing.JFrame("EDITOR");
 // erzeuge das Jpanel für das Frame
 EditJPanel EditPanel = new EditJPanel();

Java:
EditFrame.setSize(600, 500);
EditFrame.setContentPane(EditPanel); // übegebe JPane an das JFrame
EditFrame.setVisible(true);
 
Zuletzt bearbeitet:
Du solltest nicht Fenster- oder GUI-zentriert arbeiten, das ist meistens kontraproduktiv. Du brauchst eine Engine/API im Hintergrund, die dir die Daten bereitstellt und verwaltet.
Darf es das Hauptfenster nur 1 mal pro laufendem Programm geben? Wenn ja, solltest du eine Utilities-Klasse schreiben, die dir ein Singleton dieses Hauptfensters liefert und auch Zugriff auf die Nebenfenster bietet, so lange auch diese nach dem Öffnen mit Daten versorgt werden sollen.
 
Ich habe da die Observer entdeckt.
Ich bin mir aber noch nicht sicher ob mir das weiterhilft.
PS: Die Richtung daten zum Zweitfenster senden habe ich über normale Swing Ereignisse hinbekommen aber back da knoble ich noch dran...

class JokeTeller extends Observable { }

so soll ja die Classe definiert werden die etwas zu sagen hat

nur die Classe die was zusagen hat ist ein JPanel

public class EditJPanel extends javax.swing.JPanel { }

sprich dort ist das Extends schon belegt - leider gibts keine mehrfach vererbung ..

oder ich muss dann doch die Swing EreignissKlasse nutzen - es würde mir schon weiterhelfen wenn ich ein Event im EditJPanel weiterreichen könnte an das Hauptfenster
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück