2011-10-04 57 views
16

我有一個Java應用程序,它顯示數據庫中的列表。裏面的類是下面的代碼來打開數據輸入一個新的對話框:你如何添加一個監聽器的主類在關閉addNewDialog窗口進行檢測,這樣我可以調用一個刷新方法關閉對話框的Java監聽器

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

並從數據庫刷新列表。

+0

你是什麼意思的「主類」?定義'addNewEntry'的類? 'JFrame'? 「AddNewView」是什麼?那是什麼庫? –

+1

你看過Windowlisteners嗎? http://download.oracle.com/javase/1.4.2/docs/api/java/awt/event/WindowListener.html – Simiil

+0

對不起,'AddNewView'是打開的JDialog。 – Woodsy

回答

38

如果AddNewViewWindow,如DialogJDialog,則可以使用Window.addWindowListener(...)。也就是說,在你的主類,你做

addNewDialog.addWindowListener(someWindowListener); 

其中someWindowListener一些WindowListener(例如一個WindowAdapter),這將覆蓋/ implemetnns windowClosed

一個更完整的例子,使用匿名類,可能看起來像

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

相關鏈接:

+0

偉大的鏈接。關於JavaDocs的。直到[BUG報告7090875](http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875)(一個RFE)被解決爲止,任何機會可以將'7'投入任何搜索一個類的文檔(或以其他方式鏈接到版本7文檔)? –

+0

是的。也許是時候開始談論v7了......沒有打動我的腦海。我從現在開始做。謝謝。 – aioobe

+0

回覆。人們越早開始鏈接到第7版文檔,Google就會越早通過v.6鏈接返回這些鏈接。當然,如果實施RFE,它將全部變得沒有實際意義。 –