2011-08-29 38 views
0

我已經編寫了一個簡單的應用程序來將一些文本存儲在德比DB中。我有2個按鈕,每個創建一個新的inputDialog。我的問題是,當我在Ubuntu PC上運行程序時,一切都很好。當顯示輸入對話框時,當我在Windows 7 PC上運行它時,整個事情都被最小化並且被用戶隱藏起來。所以每次我想從用戶那裏得到一些輸入時,他必須恢復應用程序。另一個問題是程序不會出現在alt-tab菜單中。這裏是我用來顯示對話框的代碼:在Windows中最小化應用程序問題

String s = (String) JOptionPane.showInputDialog(this, "Моля въведете име:"); 

所有幫助將不勝感激。

+0

只是可以肯定,這是從窗口內部調用,即在JPanel/JFrame /等。類? – WaelJ

+0

是的,它是從這個應用程序中唯一的一個框架JFrame中調用的,它也被最小化了:)。 – mitakis2002

+0

試試我提供的代碼,並讓我們知道發生了什麼 – WaelJ

回答

0

我嘗試了以下代碼 - 直接從main()通過eclipse在Windows 7 64位上運行。 JFrame仍然在展示中,即使我嘗試其他方式。

JFrame f = new JFrame(); 
f.setSize(750, 500); 
f.show(); 

JOptionPane.showInputDialog(f, "hello", "there"); 
System.out.println("hi"); 

試試這個,如果你得到同樣的結果,那麼至少我們知道這是我們正在處理的,而不是一個Java問題,一個窗口的問題。

編輯:

通過您的代碼看後,我發現有問題的行。另外作爲一個方面說明,您應該在之後通常呼叫setVisible()您已完成配置您的窗口。我的代碼尤其如此,因爲如果您嘗試在之後嘗試致電setUndecorated(),那麼它會引發異常。

代碼:

this.setVisible(true);   //This should be called after you finish configuration 
device.setFullScreenWindow(this); //This is the problem!!! 

相反,你應該使用:

this.setExtendedState(JFrame.MAXIMIZED_BOTH); 
this.setVisible(true); 

如果你想擁有你的窗口全屏,然後使用:

this.setUndecorated(true); 
this.setExtendedState(JFrame.MAXIMIZED_BOTH); 
this.setVisible(true); 
+0

好吧,這工作正常。我甚至添加了一個按鈕來調用這個代碼,它工作正常。 – mitakis2002

+0

@mitakis請閱讀此:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

+0

嗯,這是有趣的(和典型的)。你能說出原因嗎?它會幫助你,如果你張貼它的代碼,比如你的JFrame的初始化 – WaelJ