Ich erzeuge aus einer JFrame, welche das Hauptfenster darstellt, eine Instanz eines anderen JFrame. Das 1. JFrame kann auf das 2. zugreifen, kein Problem. Wie kann ich jedoch vom 2. JFrame (NeuerKundeLieferantUI) auf die Methoden des 1. JFrame zugreifen?
So sieht die Methode aus, von der ich das 2. JFrame erzeuge. Was muss ich tun, damit dieses 2. JFrame auf die Methoden des 1. zugreifen kann?
[Java]
public void neuerKunde() {
NeuerKundeLieferantUI neuerKundeLieferantUI = new NeuerKundeLieferantUI();
neuerKundeLieferantUI.getNeuerKundeLieferantPanel().setBorder(new TitledBorder("Neuer Kunde"));
neuerKundeLieferantUI.setTitle("Neuer Kunde");
Icon neuerKundeIcon = new ImageIcon("icons/Kunde_neu_64px.png");
neuerKundeLieferantUI.getKundeneuBildLabel().setIcon(neuerKundeIcon);
Generell empfiehlt es sich auch nur 1 JFrame zu nutzen und den 2. als Dialog zu definieren oder zB. mit InternalFrames zu arbeiten (je nach Anwendungsfall).
Dann bleibt aber noch die Fragen, welche Daten wie laufen müssen. Warum muss das 2. Fenster auf das 1 zugreifen? Datenkontrolle auslagern?
Hm. Ich möchte lediglich, nachdem mit dem 2. JFrame, eine Eingabemaske, die Daten zur Datenbank hinzugefügt wurden, die Table aktualisieren, die sich auf dem Hauptfenster befindet. Doch dazu muss ich aus dem ActionPerformed heraus die Tabelle aktualisieren, die sich auf dem 1. Frame befindet.
Das heisst ich schreibe im Dialogfenster einen 2. Konstruktor, der das Haupfenster aufnimmt?
Generell empfiehlt es sich auch nur 1 JFrame zu nutzen und den 2. als Dialog zu definieren oder zB. mit InternalFrames zu arbeiten (je nach Anwendungsfall).
Dann bleibt aber noch die Fragen, welche Daten wie laufen müssen. Warum muss das 2. Fenster auf das 1 zugreifen? Datenkontrolle auslagern?
Im Prinzip kannst du darauf zugreifen, wenn du die entsprechenden Daten übergibst. Du würdest ein JPanel erstellen, welches den Dialog gestaltet und dem gibst du im Konstruktor das Frame mit.
Noch besser wäre es das Model-View-Controller-Pattern zu realisieren. Dort trennst du gezielt GUI von Daten und als Vermittler dient der Controller. Durch Listener werden dann automatisch Änderungen an den Daten an die GUI-Elemente kommuniziert. Aber das geht eventuell zu weit, je nachdem wie bekannt dir das alles ist.
Im Prinzip kannst du darauf zugreifen, wenn du die entsprechenden Daten übergibst. Du würdest ein JPanel erstellen, welches den Dialog gestaltet und dem gibst du im Konstruktor das Frame mit.
Noch besser wäre es das Model-View-Controller-Pattern zu realisieren. Dort trennst du gezielt GUI von Daten und als Vermittler dient der Controller. Durch Listener werden dann automatisch Änderungen an den Daten an die GUI-Elemente kommuniziert. Aber das geht eventuell zu weit, je nachdem wie bekannt dir das alles ist.