2011-10-04 160 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,它将全部变得没有实际意义。 –