关闭JFrame窗口时如何使用DefaultClosingOperation以外的东西?

时间:2009-05-03 09:12:06

标签: java events jframe listeners

我正在使用套接字在聊天客户端上工作,我希望在用户点击“X”(如正确关闭连接)时窗口关闭之前执行某些代码。

我可以在不必实现WindowListener中的所有抽象方法吗?

的情况下这样做

/ AVIN

3 个答案:

答案 0 :(得分:3)

延伸 WindowAdapter,而不是实施 WindowListener

你会在所有Swing听众身上找到这个概念。 (MouseListener/MouseAdapterKeyListener/KeyAdapter,...)有一个Listener接口和一个Adapter类,它使用空方法实现此接口。

因此,如果您只想对特定事件做出反应,请使用适配器并覆盖所需的方法。

示例:

setWindowListener(new WindowAdapter() {
    public void windowClosed(WindowEvent e) {
        //Cleanup code
    }
});

答案 1 :(得分:1)

这是你需要的

private class Closer extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
int exit = JOptionPane.showConfirmDialog(this, "Are you
sure?");
if (exit == JOptionPane.YES_OPTION) {
System.exit(0);}
}
}

答案 2 :(得分:0)

如何在ExitListener中添加FrameView的示例:

YourApp.getApplication().addExitListener(new ExitListener() {

         @Override
         public boolean canExit(EventObject arg0) {
            doStuff();

            // the return value is used by the application to actually exit or
            // not. Returning false would prevent the application from exiting.
            return true;
         }
}