Elternfenster vom JDialog aktualisieren oder nicht ?

Denny88

Mitglied
Hallo Leute ...

Nachdem ich den ganzen Tag Google und auch die SuFu im Forum gequält habe, bin ich zwar immer wieder auf ähnliche Themen gestoßen, allerdings war leider nie das richtige für mich dabei gewesen :( Deshalb hoffe ich das mir jemand bei meinem Problem helfen kann.

Ich habe ein JDialog in dem sich eine JComboBox mit bereits angelegten Einträgen befindet. Über einen Button öffne ich einen weiteren JDialog mit einem JTextField, wo ich durch das Bestätigen eines Buttons den Text aus dem JTextField an die Liste der JComboBox anfüge und den zweiten JDialog wieder schließe. Leider befindet sich danach der neue Eintrag noch nicht in der Liste der JComboBox, da ich es bis jetzt noch nicht geschafft habe den JDialog bzw. das JPanel nach dem Schließen des zweiten JDialog zu "aktualisieren". Erst wenn ich auch das erste schließe und wieder öffne erscheint der Eintrag in der JComboBox.

Kann ich das Elternfenster refreshen, sodass der Eintrag nach dem schließen des zweiten JDialog über die JComboBox ausgewählt werden kann oder gibt es da eine andere Lösung? Bin für alles offen :)
Habe es schon mit getParent().validate() und .repaint() versucht, welches aber nicht funktioniert hat.

Ich hoffe meine Beschreibung ist einigermaßen verständlich und ausreichend.

Vielen Dank schonmal im voraus ;) Ich mache für heute erstmal Feiereabend :eek:

LG
Denny
 

Denny88

Mitglied
Hallo Michael...

Danke für die schnelle Antwort und dem Denkanstoß!
Ich verwende das DefaultComboBoxModel() an das ich ein String[] übergebe. Allerdings generiere ich das Array jedesmal neu beim laden des Fensters, da sich die Einträge aus Attributen von Objekten in einer ArrayList zusammensetzen.

Im Zweiten JDialog erstelle ich eigentlich ein neues Objekt, speicher den Text aus dem JTextField als Attribut im Objekt und füge es an meine ArrayList an. Deswegen würde ich gerne das erste JDialog aktualisieren, sodass er die Einträge aus der ArrayList neu generiert.

Habe gestern Abend doch noch ein wenig mit der JComboBox und den Modellen experementiert aber nichts gescheutes rausbekommen. Muss auch sagen, dass ich bei Swing & Co noch ziemlich am Anfang stehe :D
Vielleicht kannst Du mir ja kurz erklären wie sich die JComboBox selbst aktualisieren kann, da ich zwar dazu einiges gefunden habe, aber bei mir nicht funktioniert hat. Wird das über einen Listener gemacht?

Habe jetzt mal was ausprobiert und an das zweite JDialog noch mit die JComboBox übergeben. Ich erstelle mein neues Objekt, füge es an die ArrayList an und füge zusätlich den Eintrag mit .addItem("...") der JComboBox hinzu. So habe ich mein neues Objekt und den Eintrag in der JComboBox. Ist wohl eine etwas unelegante Lösung, weil es "doppelt gemoppelt" ist oder nicht ?

LG
Daniel
 

Michael...

Top Contributor
Das Array oder die ArrayList ist nach dem Erstellen des ComboBoxModels völlig irrelevant. Ab diesem Zeitpunkt verwaltet das Model die Referenzen auf die Daten selbst. Erweiterungen oder Änderungen am Array bzw. der ArrayList habe keine Auswirkungen auf das Model und somit auch keine auf die ComboBox (Ausnahme es werden Änderungen an den von beiden referenzierten Objekten vorgenommen)
Soll die ComboBox nachträglich um einen Eintrag erweitert werden, fügt man diesen z.B. per addElement(Object) direkt dem Model hinzu. Im Falle des DefaultCo..Models wird die JComboBox über deren ListenerInterface über die Änderungen informiert.

Das ist im übrigen bei vielen Swing GUI Komponenten so, dass diese im Hintergrund ein Model nutzen an dem sie als Listener registriert sind.
 

c_sidi90

Top Contributor
Sobald du aus einem Dialog heraus eine Action durchführst, in der wie in deinem Fall ein Item an die Combobox angehangen werden soll, muss diese im Normalfall nicht "aktualisiert werden". Durch das repaint() des Hauptfensters, sollten sich die beinhalteten Components auch refreshen. Ein einfach addItem("x") fügt deiner CB automatisch an letzter Stelle im Index dein neues Object hinzu und aktualisiert die Liste.
 

Denny88

Mitglied
Also ich habe jetzt wie schon erwähnt eine Referenz zur JComboBox mit an den zweiten JDialog übergeben und dann mit addItem("...") das Element hinzugefügt. Wenn die das zweite JDialog wieder schließe, dann kann ich den neuen Eintrag, wie gewünscht, gleich auswählen :)

Also nochmals Danke für die Anregungen ;)

Aber die finale Frage wäre noch:
Wie kann ich denn jetzt das Elternfenster beim schließen des "Kindes" refreshen ? Muss da eine Listener für das Elternfenster her ? Ein refresh vom Kind aus hat ja leider nicht funktioniert :( Wäre für die Zukunft bestimmt für mich noch interessant zu wissen :D

LG
Daniel
 

Denny88

Mitglied
Dachte die wäre jetzt geklärt!? Was muss denn refreshed werden?

Ja klar, ich habe es auch geschafft und der Eintrag ist beim schließen des JDialogs in der Liste ... Hätte mich nur trotzdem nochmal interessiert, wie man beim Schließen eines Fensters ein anderes aktualisieren kann ;) Nur so aus Neugierde ;) ... Aber meinetwegen kann der Thread auch jetzt geschlossen werden :D

Nochmals Danke ...

LG
Daniel
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E JDialog mit count down timer AWT, Swing, JavaFX & SWT 1
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
A ViewController (IFrame) > Jdialog > Model AWT, Swing, JavaFX & SWT 1
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
L JDialog hat manchmal keinen Inhalt AWT, Swing, JavaFX & SWT 2
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
B Eingaben im JDialog abwarten AWT, Swing, JavaFX & SWT 4
S Swing JDialog mit KeyEvent als Rückgabe AWT, Swing, JavaFX & SWT 1
O Swing JDialog öffnen und dann warten bis er geschlossen wurde AWT, Swing, JavaFX & SWT 2
stylegangsta JDialog bestimmte Zeilen kursiv AWT, Swing, JavaFX & SWT 20
M LayoutManager Modalen JDialog ein Layout zuweisen AWT, Swing, JavaFX & SWT 3
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
L KeyListener für JDialog AWT, Swing, JavaFX & SWT 7
T Event Handling JDialog schließen, sobald ein neuer erzeugt wird AWT, Swing, JavaFX & SWT 3
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
D Button auf geöffnetem JDialog AWT, Swing, JavaFX & SWT 5
N Definitionen JDialog AWT, Swing, JavaFX & SWT 7
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
Joew0815 JDialog repaint() funktioniert nicht wie gewünscht. AWT, Swing, JavaFX & SWT 2
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
N Swing Fragen zu non-modal JDialog AWT, Swing, JavaFX & SWT 1
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
N JDialog als Progress-Anzeige AWT, Swing, JavaFX & SWT 6
M JDialog statt JFrame AWT, Swing, JavaFX & SWT 22
I focus an ein jdialog geben AWT, Swing, JavaFX & SWT 3
3 JDialog über einem Vollbildfenster anzeigen AWT, Swing, JavaFX & SWT 5
M JDialog soll JFrame "blockieren" AWT, Swing, JavaFX & SWT 2
K JDialog zeigt Components nicht an AWT, Swing, JavaFX & SWT 3
S Jframe aus JDialog starten AWT, Swing, JavaFX & SWT 4
M JDialog übergibt eingaben nicht an aufrufende klasse AWT, Swing, JavaFX & SWT 15
S Assistent im JDialog AWT, Swing, JavaFX & SWT 7
H Swing JDialog cannot be resolved as a typ AWT, Swing, JavaFX & SWT 12
C Swing JDialog "flutet" den Arbeitsspeicher AWT, Swing, JavaFX & SWT 9
S Swing Eigenen JDialog mit Rückgabewert AWT, Swing, JavaFX & SWT 3
C Swing JDialog Ladebildschirm wird nicht angezeit AWT, Swing, JavaFX & SWT 5
Jagson Mit JMenu auf jDialog zurück? Wie? AWT, Swing, JavaFX & SWT 8
A JDialog (modal) blockiert alle Fenster! AWT, Swing, JavaFX & SWT 2
Jagson Swing Von JDialog zu anderem JDialog wechseln AWT, Swing, JavaFX & SWT 2
S JDialog direkt über dem MainFrame aufpoppen lassen AWT, Swing, JavaFX & SWT 2
A Swing JDialog KeyBindings und Textfelder AWT, Swing, JavaFX & SWT 5
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
D JDialog: immer nur einer gleichzeitig AWT, Swing, JavaFX & SWT 4
S JDialog per Button schließen AWT, Swing, JavaFX & SWT 2
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
D JDialog alwaysOnTop, aber nur innerhalb der Applikation AWT, Swing, JavaFX & SWT 3
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
S JDialog über Applet AWT, Swing, JavaFX & SWT 3
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
J Swing JDialog gleichzeitig mit JFrame anzeigen AWT, Swing, JavaFX & SWT 8
S Probleme jDialog einfügen AWT, Swing, JavaFX & SWT 4
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
S Schrift ändern in JDialog AWT, Swing, JavaFX & SWT 3
S Problem mit JDialog AWT, Swing, JavaFX & SWT 3
hdi Swing Genaue Funktionsweise von modalem JDialog? AWT, Swing, JavaFX & SWT 11
U JDialog ohne Taskleiste AWT, Swing, JavaFX & SWT 7
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
X JEditorPane Größe in JDialog automatisch anpassen AWT, Swing, JavaFX & SWT 2
Ollek JDialog Koponenten neu anordnen AWT, Swing, JavaFX & SWT 3
A JDialog AWT, Swing, JavaFX & SWT 10
Dit_ SwingUtilities.invokeLater und Modaler JDialog AWT, Swing, JavaFX & SWT 11
A Frage zu JDialog AWT, Swing, JavaFX & SWT 3
A JDialog ausdrucken AWT, Swing, JavaFX & SWT 7
aze JDialog mit runden ecken AWT, Swing, JavaFX & SWT 8
Dit_ JDialog nur horizontal vergrößern AWT, Swing, JavaFX & SWT 3
C Swing JProgressBar in JDialog wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
M Swing Vererbung, Probleme mit JDialog AWT, Swing, JavaFX & SWT 12
H JDialog, Modal - Klassenübergreifend => Problem AWT, Swing, JavaFX & SWT 5
S Swing Bild (Gif) in Bitte warten JDialog AWT, Swing, JavaFX & SWT 6
U JFrame minimiert nach JDialog, JOptionPane AWT, Swing, JavaFX & SWT 3
K Swing JDialog aus Frame ausrufen AWT, Swing, JavaFX & SWT 2
B JDialog über JFileChooser anzeigen AWT, Swing, JavaFX & SWT 6
B JDialog AWT, Swing, JavaFX & SWT 6
J Swing Probmel mit JDialog (Modal/FocusLost/Button) AWT, Swing, JavaFX & SWT 5
E Swing Fehlerhaftes Verhalten bei gleichzeitigen Verwendnen von PopUpMenu und JDialog?! AWT, Swing, JavaFX & SWT 5
J Swing JDialog mit static-Funktion anzeigen -> Rückgabewert AWT, Swing, JavaFX & SWT 3
E Daten von JDialog nach JFrame übertragen AWT, Swing, JavaFX & SWT 4
F ActionListener von JButton funktioniert mit JFrame aber nicht mit JDialog AWT, Swing, JavaFX & SWT 2
D Mehrere Comboboxen in JDialog AWT, Swing, JavaFX & SWT 2
F JDialog per Button schliessen - klappt nicht AWT, Swing, JavaFX & SWT 4
BattleMaster246 JDialog erscheint in der Taskbar AWT, Swing, JavaFX & SWT 7
H Sub-Dialog von modalem JDialog aus aufrufen - geht das? AWT, Swing, JavaFX & SWT 6
R Swing JDialog liefert immer false, 2 JListen verknüpfen AWT, Swing, JavaFX & SWT 3
P Swing eigenen Modalen JDialog AWT, Swing, JavaFX & SWT 6
J JDialog verliert Werte AWT, Swing, JavaFX & SWT 3
N Variablen an JDialog übergeben AWT, Swing, JavaFX & SWT 2
P Swing JDialog schliesst nicht AWT, Swing, JavaFX & SWT 2
X Swing JDialog von JInternalFrames überlappen lassen AWT, Swing, JavaFX & SWT 2
O JDialog-JScrollPane-JTable Problem AWT, Swing, JavaFX & SWT 3
N Swing Frage zu modalem JDialog. AWT, Swing, JavaFX & SWT 16
A JFrame oder JDialog AWT, Swing, JavaFX & SWT 12
B Swing JDialog : Herausfinden wie dieser beendet wurde? AWT, Swing, JavaFX & SWT 2
T JDialog ohne Fenstermanager? AWT, Swing, JavaFX & SWT 2
S JDialog in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 3
A Swing JFrame Werte aus JDialog übergeben AWT, Swing, JavaFX & SWT 4
K Swing JDialog ohne Titlebar mit Rahmen AWT, Swing, JavaFX & SWT 5
KrokoDiehl Swing KeyEvents für JDialog / JFrame AWT, Swing, JavaFX & SWT 2
C Swing JComboBox in JDialog AWT, Swing, JavaFX & SWT 3
F Frage zu Dialogen mit JDialog -Erstellung des Konstruktors AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben