2014-11-25 25 views
1

我有一個簡單的Swing應用程序,它以全屏模式運行。我的應用程序實例化一個JFrame,然後實例化一個JPanel,其中所有繪圖都在paintComponent方法中完成。我也有一個MouseListener關注某些事件。當我創建一個對話框時,爲什麼我的Swing應用程序會最小化?

其中一個事件(點擊屏幕的某個區域)會觸發提示。這裏是我的代碼來顯示提示(請記住,這是來自我的課程擴展JPanel)。

int choice = JOptionPane.showConfirmDialog(this, "Are you sure you want to quit?", "Quit?", JOptionPane.YES_NO_OPTION); 
if (choice == JOptionPane.OK_OPTION) { 
    dialogOpen = false; 
    System.exit(0); 
} else { 
    dialogOpen = false; 
    repaint(); 
} 

唯一的問題是......只要這段代碼運行,整個窗口就會消失。更具體地說,它看起來像自己最小化,因爲我可以點擊任務欄中的Java圖標,它會立即彈出。但是,我如何阻止它最小化本身?我想要做的只是顯示一個簡單的提示!

+0

彈出窗口根本不顯示嗎?你有任何錯誤? – Max 2014-11-25 00:24:38

+0

應用程序最小化應用程序啓動時?或者當從JOptionPane中選擇NO時,它是否會最小化? – 2014-11-25 00:25:41

+2

想要獲得更快的幫助,請發佈[MCVE](http://stackoverflow.com/help/mcve)(最小完整可驗證示例)或[SSCCE](http://www.sscce.org/)(Short,Self包含,正確示例)。 – 2014-11-25 00:51:23

回答

1

我想通了。感謝大家的寶貴意見(與人它是什麼和評論在這裏,順便說一句?怎麼來的人寫的一切可能去回答的評論呢?)

而不是調用.showConfirmDialog(this, ...)(其中this是我的JPanel子類),我需要撥打.showConfirmDialog(parent, ...)(其中parent是我的JFrame子類)。然後,我在JFrame上添加了一個WindowStateListener來檢測狀態更改並重置窗口狀態。

相關問題