最近在作swing程序中遇到使用消息提示框的,JOptionPane類其中封裝了不少的方法。很方便的,因而就簡單的整理了一下。如下是官方文檔說明:html
JOptionPane
有助於方便地彈出要求用戶提供值或向其發出通知的標準對話框。因爲方法數多使 JOptionPane
類可能顯得複雜,但幾乎全部此類的使用都是對下列靜態 showXxxDialog
方法之一的單行調用:java
方法名 | 描述 |
showConfirmDialog | 詢問一個確認問題,如 yes/no/cancel。 |
showInputDialog | 提示要求某些輸入。 |
showMessageDialog | 告知用戶某事已發生。 |
showOptionDialog | 上述三項的大統一 (Grand Unification)。 |
全部這些方法還可能以 showInternalXXX
風格出現,該風格使用內部窗體來保存對話框。此外還定義了多種便捷方法,這些方法重載那些基本方法,使用不一樣的參數列表。數組
全部對話框都是有模式的。在用戶交互完成以前,每一個 showXxxDialog
方法都一直阻塞調用者。佈局
這些對話框的基本外形一般與右圖相似,儘管各類外觀從根本上決定着最後結果。尤爲是,外觀能夠調整佈局以適應選項窗格的 ComponentOrientation
屬性。spa
參數:
這些方法的參數遵照一致的模式:code
- parentComponent
- 定義做爲此對話框的父對話框的
Component
。經過兩種方式使用此參數:包含它的Frame
能夠用做對話框的父Frame
,在對話框的位置使用其屏幕座標。通常狀況下,將對話框緊靠組件置於其之下。此參數能夠爲null
,在這種狀況下,默認的Frame
用做父級,而且對話框將居中位於屏幕上(取決於 L&F)。- message
- 要置於對話框中的描述消息。在最多見的應用中,message 就是一個
String
或String
常量。不過,此參數的類型其實是Object
。其解釋依賴於其類型:
- Object[]
- 對象數組被解釋爲在縱向堆棧中排列的一系列 message(每一個對象一個)。解釋是遞歸式的,即根據其類型解釋數組中的每一個對象。
- Component
- 該
Component
在對話框中顯示。- Icon
- 該
Icon
被包裝在JLabel
中並在對話框中顯示。- 其餘
- 該對象經過調用其
toString
方法被轉換爲String
。結果被包裝在JLabel
中顯示。- messageType
- 定義 message 的樣式。外觀管理器根據此值對對話框進行不一樣地佈置,而且一般提供默認圖標。可能的值爲:
ERROR_MESSAGE
INFORMATION_MESSAGE
WARNING_MESSAGE
QUESTION_MESSAGE
PLAIN_MESSAGE
- optionType
- 定義在對話框的底部顯示的選項按鈕的集合:
用戶並不是僅限於使用此選項按鈕集合。使用 options 參數能夠提供想使用的任何按鈕。
DEFAULT_OPTION
YES_NO_OPTION
YES_NO_CANCEL_OPTION
OK_CANCEL_OPTION
- options
- 將在對話框底部顯示的選項按鈕集合的更詳細描述。options 參數的常規值是
String
數組,可是參數類型是Object
數組。根據對象的如下類型爲每一個對象建立一個按鈕:
- Component
- 該組件被直接添加到按鈕行中。
- Icon
- 建立的
JButton
以此圖標做爲其標籤。- 其餘
- 該
Object
經過使用其toString
方法轉換爲字符串,並使用該結果做爲JButton
的標籤。- icon
- 要置於對話框中的裝飾性圖標。圖標的默認值由
messageType
參數肯定。- title
- 對話框的標題。
- initialValue
- 默認選擇(輸入值)。
當選擇更改時,調用生成 PropertyChangeEvent
的 setValue
方法。htm
若是已爲全部輸入 setWantsInput
配置了 JOptionPane
,則還能夠偵聽綁定屬性 JOptionPane.INPUT_VALUE_PROPERTY
,以肯定什麼時候用戶輸入或選擇了值。對象
當其中一個 showXxxDialog
方法返回整數時,可能的值爲:blog
YES_OPTION
NO_OPTION
CANCEL_OPTION
OK_OPTION
CLOSED_OPTION
瞭解了官方的解釋後,固然是要對這些東西進行使用了,具體是使用和各類樣式如面代碼及圖片所示:、遞歸
JOptionPane.showMessageDialog(null, "警告標識提示消息", "標題",JOptionPane.WARNING_MESSAGE);
JOptionPane.showMessageDialog(null, "錯誤標識提示消息.", "標題",JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null, "信息標識提示消息.", "標題",JOptionPane.INFORMATION_MESSAGE);上面的顯示能夠直接調用默認提示框,其效果是一致的。
JOptionPane.showMessageDialog(null, "提示框");
JOptionPane.showMessageDialog(null, "疑問標識提示消息.", "標題",JOptionPane.QUESTION_MESSAGE);
JOptionPane.showMessageDialog(null, "無標識提示消息.", "標題",JOptionPane.PLAIN_MESSAGE);