2011-10-28 12 views
-1

我在我的節目的一段代碼,其中在我需要顯示錯誤消息。代碼:無法聚焦的JOptionPane上前景與默認幀

String ErrorMsg=" Error to be Diplayed "; 
JOptionPane.showMessageDialog(null, ErrorMsg, "Failure", JOptionPane.ERROR_MESSAGE); 

注意:使用默認框架。

的消息顯示成功,但按「確定」按鈕,如果我嘗試其他任何成功的流程消息框失去控制和消息框不會對前景阻塞甚至連續流動承認之前。

我希望消息框在前景總是,直到用戶按下「確定」按鈕,而不是失去焦點並隱藏起來。怎麼做?

+1

你是什麼意思的'默認幀'?這應該是傳遞給'showMessageDialog'而不是'null'的組件。 –

+0

我沒有使用任何組件[框架],所以該字段將爲空。 –

+0

爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

回答

2

以下代碼是足以使與默認幀的JOptionPane消息被在頂部設置。

 JDialog dialog = new JOptionPane("ErrorMsg",JOptionPane.ERROR_MESSAGE,JOptionPane.DEFAULT_OPTION).createDialog(" Failure"); 
     dialog.setAlwaysOnTop(true); 
     dialog.setVisible(true); 
     dialog.dispose(); 
2

通行證參考父框架,而不是空(第一個參數)。

+0

我在代碼中沒有任何父組件。 –

+0

您有「使用的默認框架」。將引用傳遞給JOptionPane。 – StanislavL

+0

@StanislavL:我認爲他把控制檯稱爲「默認框架」。 1+雖然試圖幫助這個非常混亂的問題。 –

3

如果你想的JOptionPane的行爲,因爲它會在一個完整的圖形用戶界面,那麼首先創建一個完整的Swing GUI的。忘記使用「默認」框架或任何你使用的(控制檯也許)。您需要GUI行爲,因此要獲得此操作,必須通過在JFrame中顯示應用程序並使JFrame啓動JOptionPane來創建GUI。

2

我希望消息框始終處於前景,直到用戶按下「確定」按鈕,而不是失去焦點並隱藏起來。

使用JFrame和setAlwaysOnTop(true)。您將需要顯示自己的消息和按鈕。

一個JOptionPane中使用一個JDialog幕後。一個JDialog不支持這個屬性。

編輯:

習慣於通過選項面板中,你可以使用圖標:

Icon icon = UIManager.getIcon("OptionPane.errorIcon"); 

對於其它圖標列表,請參閱:UIManager Defaults

+0

我沒有想到這一點,這將工作,謝謝,1+! –

+0

我遵循了相同的步驟,但是如何顯示錯誤符號? –

+0

我創建了一個Jframe,使用JLabel和Jbutton使它出現在前臺,在標題欄中禁用min,max選項...總之,它看起來像一個對話框...現在我想顯示「X」錯誤符號就像錯誤情況下的對話框一樣......怎麼做 ?我從Jdialog類擴展.. –