我有一個Java桌面應用程序,我希望當用戶選擇Exit來獲得一個彈出窗口詢問他是否要繼續關閉應用程序。我知道如何讓窗口出現並閱讀用戶的響應,但是我需要知道的是如何阻止應用程序關閉(類似System.close().cancel()
)。如何停止Java應用程序的關閉
這可能嗎?
我有一個Java桌面應用程序,我希望當用戶選擇Exit來獲得一個彈出窗口詢問他是否要繼續關閉應用程序。我知道如何讓窗口出現並閱讀用戶的響應,但是我需要知道的是如何阻止應用程序關閉(類似System.close().cancel()
)。如何停止Java應用程序的關閉
這可能嗎?
在您JFrame
,你必須設置一個defaultCloseOperation
:
JFrame.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
然後設置彈出窗口的關閉動作EXIT_ON_CLOSE
。
您可以添加窗口偵聽器。 (注:WindowAdapter
在java.awt.event
包)
myframe.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
// do something
}
});
是的,它是可能的。
調用setDefaultCloseOperation(DO_NOTHING_ON_CLOSE)
後,添加WindowListener
或WindowAdapter
並在windowClosing(WindowEvent)
方法,彈出一個JOptionPane
。
int result = JOptionPane.showConfirmDialog(frame, "Exit the application?");
if (result==JOptionPane.OK_OPTION) {
System.exit(0);
}
設置setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
到你的JFrame或JDialog的後,添加Windows監聽器:
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
int result = JOptionPane.showConfirmDialog((Component) null, "Do u really want to exit ?!",
"Confirmation", JOptionPane.YES_NO_OPTION);
if (result == 0) {
System.exit(0);
} else {
}
}
});
的可能的複製[如何選擇一個Swing的WindowListener否決的JFrame關閉](http://stackoverflow.com/問題/ 3777146 /何燦-A-擺動的WindowListener否決權-的JFrame閉) – Autar