2011-10-04 19 views
16

Ho un'app Java che visualizza un elenco da un database. All'interno della classe è il seguente codice per aprire una nuova finestra di dialogo per l'immissione dei dati:Listener Java sulla finestra di dialogo

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

Come si fa ad aggiungere un listener per la classe principale di rilevare quando la finestra addNewDialog è chiuso, in modo che io possa chiamare un metodo di aggiornamento e aggiorna la lista dal database.

+0

Cosa intendi per "classe principale"? La classe che definisce 'addNewEntry'? Il 'JFrame'? Che diamine è "AddNewView'? Da quale libreria proviene? –

+1

Hai esaminato Windowlisteners? http://download.oracle.com/javase/1.4.2/docs/api/java/awt/event/WindowListener.html – Simiil

+0

Spiacente, "AddNewView" è il JDialog in fase di apertura. – Woodsy

risposta

38

Se AddNewView è un Window come ad esempio un Dialog o JDialog, è possibile utilizzare il Window.addWindowListener(...). Cioè, nella classe principale, si fa

addNewDialog.addWindowListener(someWindowListener); 

dove someWindowListener è una certa WindowListener (ad esempio un WindowAdapter) che sostituisce/implemetnns windowClosed.

un esempio più completo, utilizzando una classe anonima, potrebbe apparire come

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

link pertinenti:

+0

Ottimi collegamenti. Per quanto riguarda quelli per JavaDocs. Fino a quando non viene risolto [bug report 7090875] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875) (una RFE), qualsiasi possibilità di lanciare un "7" in una ricerca per il doc per una classe (o in altro modo il collegamento alla versione 7 dei documenti)? –

+0

Sì. Forse è ora di iniziare a riferirsi alla v7 ... Non mi ha colpito la mente. Lo farò d'ora in poi. Grazie. – aioobe

+0

Grazie indietro. Prima che le persone inizino a collegarsi ai documenti v. 7, prima Google restituirà tali collegamenti tramite i collegamenti v. 6. Naturalmente, se l'RFE è implementato, tutto diventerà discutibile. –

Problemi correlati