web-dev-qa-db-fra.com

Java Listener sur la boîte de dialogue Fermer

J'ai un Java application qui affiche une liste d'une base de données. Dans la classe est le code suivant pour ouvrir une nouvelle boîte de dialogue pour la saisie de données:

@Action
public void addNewEntry() {
    JFrame mainFrame = ADLog2App.getApplication().getMainFrame();
    addNewDialog = new AddNewView(mainFrame, true);
    addNewDialog.setLocationRelativeTo(mainFrame);
    addNewDialog.addContainerListener(null);
    ADLog2App.getApplication().show(addNewDialog);
}

Comment ajoutez-vous un auditeur à la classe principale à détecter lorsque la fenêtre Addnewdialog est fermée, de sorte que je puisse appeler une méthode d'actualisation et rafraîchir la liste dans la base de données.

20
Woodsy

Si AddNewView est un Window tel que A Dialog ou JDialog , vous pouvez utiliser le window.addwindowstenner (...) . C'est-à-dire dans votre classe principale, vous faites

addNewDialog.addWindowListener(someWindowListener);

someWindowListener est un peu WindowListener (par exemple A WindowAdapter ) qui remplace/implémentatnns windowClosed .

Un exemple plus complet, en utilisant une classe anonyme, pourrait ressembler à

addNewDialog.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosed(WindowEvent e) {
        refreshMainView();
    }
});

Liens pertinents:

42
aioobe

vous devez ajouter WindowListener et remplacement Fermeture de la fenêtre événement, si l'événement s'est produit, il suffit de retourner un drapeau, exemple ici

7
mKorbel