GoLLuM
Erfahrenes Mitglied
hallo Leute!
ich bin gerade dabei meine Diplomarbeit zu schreiben und auf ein Problem gestoßen, das ich sehr gern lösen möchte.
folgendes Setup:
ich habe einen jFrame in dem es (unter anderem) einen Buttton gibt, dieser öffnet einen jDialog.
Der Jdialog befindet sich in einer eigenen klasse/java-Datei. Im JDialog gibt es (neben Textfeldern etc.) einen weitere Button, der bei "actionperformed" zwei Dinge auslösen soll:
Die Idee vom Ablauf:
Im darunterliegenden Jframe gibt es eine Tabelle, die die Daten aus der Datenbank zieht. Jetzt ist meine Vorstellung folgende: sobald der jDialog über den Button geschlossen wurde, soll sich die Tabelle updaten (die Update-Funktion ist schon geschrieben und funktioniert). Naiv wie ich bin, habe ich dann dem Jdialog einen Actionlistener hinzugefügt, der bei window-closing die Tabelle neu laden soll. Damit verändert sich de Quelltext von oben so:
Das Problem:
Wenn ich den JDialog über das "Kreuz rechts oben im Fenstertitel" schließe (mir ist leider keine bessere Beschreibung eingefallen
), dann wird die Tabelle refresht. Das ist schon mal super.
Aber wenn ich das Fenster über meinen Button mit dispose(); schließe, dann wird anscheinend der windowclosing-event nicht erzeugt - die Tabelle aktualisiert sich nämlich nicht.
Die Frage:
Gibt es eine Möglichkeit, den Event beim Button-Klick zu erzeugen? Oder gibt es vielleicht eine Möglichkeit, wie ich den dispose();-event auswerten kann?
Ich danke euch schon mal im Voraus und hoffe, dass wir eine Lösung finden
ich bin gerade dabei meine Diplomarbeit zu schreiben und auf ein Problem gestoßen, das ich sehr gern lösen möchte.
folgendes Setup:
ich habe einen jFrame in dem es (unter anderem) einen Buttton gibt, dieser öffnet einen jDialog.
Code:
btnCreateBusinessRatio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
JDialog guiAddBRatio = new GuiCreateBusinessRatio();
guiAddBRatio.setLocationRelativeTo(frmJBSC);
guiAddBRatio.setVisible(true);
}
});
Der Jdialog befindet sich in einer eigenen klasse/java-Datei. Im JDialog gibt es (neben Textfeldern etc.) einen weitere Button, der bei "actionperformed" zwei Dinge auslösen soll:
- texteingaben des Benutzers speichern (funktioniert, Eingaben werden in einer Datenbank gespeichert)
- der JDialog soll sich schließen.
Code:
dispose();
Die Idee vom Ablauf:
Im darunterliegenden Jframe gibt es eine Tabelle, die die Daten aus der Datenbank zieht. Jetzt ist meine Vorstellung folgende: sobald der jDialog über den Button geschlossen wurde, soll sich die Tabelle updaten (die Update-Funktion ist schon geschrieben und funktioniert). Naiv wie ich bin, habe ich dann dem Jdialog einen Actionlistener hinzugefügt, der bei window-closing die Tabelle neu laden soll. Damit verändert sich de Quelltext von oben so:
Code:
btnCreateBusinessRatio.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
JDialog guiAddBRatio = new GuiCreateBusinessRatio();
guiAddBRatio.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
refreshTable();
}
});
guiAddBRatio.setLocationRelativeTo(frmJBSC);
guiAddBRatio.setVisible(true);
}
});
Das Problem:
Wenn ich den JDialog über das "Kreuz rechts oben im Fenstertitel" schließe (mir ist leider keine bessere Beschreibung eingefallen

Aber wenn ich das Fenster über meinen Button mit dispose(); schließe, dann wird anscheinend der windowclosing-event nicht erzeugt - die Tabelle aktualisiert sich nämlich nicht.

Die Frage:
Gibt es eine Möglichkeit, den Event beim Button-Klick zu erzeugen? Oder gibt es vielleicht eine Möglichkeit, wie ich den dispose();-event auswerten kann?

Ich danke euch schon mal im Voraus und hoffe, dass wir eine Lösung finden

Zuletzt bearbeitet: