2011-10-04 15 views
16

Mam aplikację Java, która wyświetla listę z bazy danych. W klasie jest następujący kod, aby otworzyć nowe okno dialogowe do wprowadzania danych:Detektor Java w oknie dialogowym close

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

Jak dodać detektor do głównej klasy, aby wykryć, kiedy okno addNewDialog jest zamknięty, tak że mogę wywołać metodę odświeżania i odśwież listę z bazy danych.

+0

Co masz na myśli przez "główną klasę"? Klasa, która definiuje 'addNewEntry'? "JFrame"? Co do cholery jest 'AddNewView'? Z jakiej biblioteki pochodzi? –

+1

Czy zaglądasz do Windowlistenerów? http://download.oracle.com/javase/1.4.2/docs/api/java/awt/event/WindowListener.html – Simiil

+0

Niestety, "AddNewView" to otwierany JDialog. – Woodsy

Odpowiedz

38

Jeśli AddNewView jest Window takie jak Dialog lub JDialog, można użyć Window.addWindowListener(...). Oznacza to, że w swojej głównej klasie, robisz

addNewDialog.addWindowListener(someWindowListener); 

gdzie someWindowListener pewne WindowListener (na przykład WindowAdapter), które bierze górę/implemetnns windowClosed.

Pełniejszy przykład, używając anonimową klasę, może wyglądać

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

odpowiednie linki:

+0

Świetne linki. W odniesieniu do tych do JavaDocs. Do czasu rozwiązania problemu [zgłoszenie błędu 7090875] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875) (RFE), istnieje jakakolwiek szansa, że ​​rzucisz "7" w dowolne wyszukiwanie dokument dla klasy (lub w inny sposób powiązany z dokumentami w wersji 7)? –

+0

Tak. Być może nadszedł czas, aby zacząć odnosić się do v7 ... Nie uderzyło mnie to. Zrobię to od teraz. Dzięki. – aioobe

+0

Dzięki. Im wcześniej ludzie zaczną tworzyć łącza do dokumentów v. 7, tym wcześniej Google zwróci te linki za pośrednictwem linków v. 6. Oczywiście, jeśli RFE zostanie wdrożony, wszystko stanie się dyskusyjne. –

Powiązane problemy