我正在使用一個套接字在聊天客戶端上工作,並且我希望在用戶單擊「X」(如正確關閉連接)時在窗口關閉之前執行某個代碼。如何在關閉JFrame窗口時使用DefaultClosingOperation以外的內容?
我可以這樣做,而不必實現WindowListener
中的所有抽象方法嗎?
/AVIN
我正在使用一個套接字在聊天客戶端上工作,並且我希望在用戶單擊「X」(如正確關閉連接)時在窗口關閉之前執行某個代碼。如何在關閉JFrame窗口時使用DefaultClosingOperation以外的內容?
我可以這樣做,而不必實現WindowListener
中的所有抽象方法嗎?
/AVIN
只是延長WindowAdapter
,而不是實施WindowListener
。
你會發現這個概念在所有的Swing聽衆。 (MouseListener/MouseAdapter
,KeyListener/KeyAdapter
,...)有一個Listener
接口和一個Adapter
類,它用空方法實現這個接口。
因此,如果您只想對特定事件做出反應,請使用適配器並覆蓋所需的方法。
例子:
setWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
//Cleanup code
}
});
這裏是你需要的是如何從內FrameView
添加ExitListener
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);}
}
}
例子:
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;
}
}
這似乎是工作精細。非常感謝。 – Aveen 2009-05-03 09:43:20