2012-10-12 55 views
0

我有一個java swing應用程序。此應用程序包含一個大型機窗口。如何在JConfirmDialog中實現取消按鈕

當用戶點擊關閉窗口(窗口右上角的X按鈕)時,我的應用程序彈出一個確認對話框,其中包括是,否和取消操作。點擊yes保存一些文件並關閉應用程序,No關閉應用程序而不保存結果。這一切都已經實施並且工作正常。

現在我需要實現cancel操作通常應該做的事情喜歡接近的ConfirmDialog和保持應用程序仍處於打開狀態(與此相悖的是,並沒有選擇關閉應用程序)「我需要實現的想法」應用程序應該單擊取消按鈕時不關閉「。對於任何現有的示例,可以考慮關閉Excel表格(在您編輯excel並在不保存的情況下嘗試關閉之後)

+2

你有什麼嘗試?處理「取消」應該像關閉對話框一樣簡單,並且別無其他。請顯示您的代碼並指出您遇到問題的位置。 –

+0

首先,確保幀的'defaultCloseOperation'設置爲'JFrame#DO_NOTHING_ON_CLOSE',現在可以完全控制你。你需要監視'windowClosing'事件並採取適當的行動,從它的聲音中,你已經完成了 – MadProgrammer

+0

JConfirmDialog?請注意複製/粘貼這些東西,而不是用隨機的字母來浪費我們的帶寬。 –

回答

3

設置幀的默認關閉操作:

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE) 

您的windowClosing如果用戶點擊cancel,則事件處理程序可以直接返回並且程序將繼續,如同沒有任何事件發生一樣。

如果用戶點擊yesno那麼您的代碼將需要以編程方式關閉框架。

+0

它不工作....下面是我添加的代碼 – chaitu

+0

我在我的代碼中使用以下語句1)getFrame()。setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 2)在窗口關閉事件下,我添加了int option_choosen = JOptionPane.showConfirmDialog(mainPanel,「是否要在退出應用程序之前保存模擬結果?」,「保存結果?」,1)3)在Yes和No options下我添加了getFrame()。dispose()4)我已經添加下取消選項沒有 – chaitu

+0

瞭解它....感謝您的幫助! – chaitu