我有一个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);
}
如何向主类添加侦听器以检测addNewDialog窗口何时关闭,以便我可以调用刷新方法并从数据库中刷新列表。
答案 0 :(得分:41)
如果AddNewView
是Window
,例如Dialog
或JDialog
,则可以使用Window.addWindowListener(...)。也就是说,在你的主要课程中,你做
addNewDialog.addWindowListener(someWindowListener);
其中someWindowListener
是某些WindowListener
(例如WindowAdapter
),它会覆盖/实现windowClosed
。
使用匿名类的更完整示例可能看起来像
addNewDialog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
refreshMainView();
}
});
相关链接:
答案 1 :(得分:7)
您必须添加WindowListener并覆盖windowClosing事件,如果发生事件,则只需重新调整一些标记,例如here