java的alert操作

 

javax.swing
類 JOptionPane


  
      
          
              javax.swing.JOptionPane
所有已實現的接口:
ImageObserver, MenuContainer, Serializable, Accessible

public class JOptionPane
extends JComponentimplements Accessible

JOptionPane 有助於方便地彈出要求用戶提供值或向其發出通知的標準對話框。有關使用 JOptionPane 的信息,請參見 The Java Tutorial 中的 How to Make Dialogs 一節。

雖然由於方法數多使 JOptionPane 類可能顯得複雜,但幾乎所有此類的使用都是對下列靜態 showXxxDialog 方法之一的單行調用:

方法名 描述
showConfirmDialog 詢問一個確認問題,如 yes/no/cancel。
showInputDialog 提示要求某些輸入。
showMessageDialog 告知用戶某事已發生。
showOptionDialog 上述三項的大統一 (Grand Unification)。
所有這些方法還可能以 showInternalXXX 風格出現,該風格使用內部窗體來保存對話框(請參見 JInternalFrame)。此外還定義了多種便捷方法,這些方法重載那些基本方法,使用不同的參數列表。

所有對話框都是有模式的。在用戶交互完成之前,每個 showXxxDialog 方法都一直阻塞調用者。

圖標 消息
輸入值
選項按鈕
這些對話框的基本外形通常與右圖類似,儘管各種外觀從根本上決定着最後結果。尤其是,外觀可以調整佈局以適應選項窗格的 ComponentOrientation 屬性。

參數:
這些方法的參數遵守一致的模式:

parentComponent
定義作爲此對話框的父對話框的 Component。通過兩種方式使用此參數:包含它的 Frame 可以用作對話框的父 Frame,在對話框的位置使用其屏幕座標。一般情況下,將對話框緊靠組件置於其之下。此參數可以爲 null,在這種情況下,默認的 Frame 用作父級,並且對話框將居中位於屏幕上(取決於 L&F)。
message
要置於對話框中的描述消息。在最常見的應用中,message 就是一個 StringString 常量。不過,此參數的類型實際上是 Object。其解釋依賴於其類型:
Object[]
對象數組被解釋爲在縱向堆棧中排列的一系列 message(每個對象一個)。解釋是遞歸式的,即根據其類型解釋數組中的每個對象。
Component
Component 在對話框中顯示。
Icon
Icon 被包裝在 JLabel 中並在對話框中顯示。
其他
該對象通過調用其 toString 方法被轉換爲 String。結果被包裝在 JLabel 中顯示。
messageType
定義 message 的樣式。外觀管理器根據此值對對話框進行不同地佈置,並且通常提供默認圖標。可能的值爲:
  • ERROR_MESSAGE
  • INFORMATION_MESSAGE
  • WARNING_MESSAGE
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE
optionType
定義在對話框的底部顯示的選項按鈕的集合:
  • DEFAULT_OPTION
  • YES_NO_OPTION
  • YES_NO_CANCEL_OPTION
  • OK_CANCEL_OPTION
用戶並非僅限於使用此選項按鈕集合。使用 options 參數可以提供想使用的任何按鈕。
options
將在對話框底部顯示的選項按鈕集合的更詳細描述。options 參數的常規值是 String 數組,但是參數類型是 Object 數組。根據對象的以下類型爲每個對象創建一個按鈕:
Component
該組件被直接添加到按鈕行中。
Icon
創建的 JButton 以此圖標作爲其標籤。
其他
Object 通過使用其 toString 方法轉換爲字符串,並使用該結果作爲 JButton 的標籤。
icon
要置於對話框中的裝飾性圖標。圖標的默認值由 messageType 參數確定。
title
對話框的標題。
initialValue
默認選擇(輸入值)。

當選擇更改時,調用生成 PropertyChangeEventsetValue 方法。

如果已爲所有輸入 setWantsInput 配置了 JOptionPane,則還可以偵聽綁定屬性 JOptionPane.INPUT_VALUE_PROPERTY,以確定何時用戶輸入或選擇了值。

當其中一個 showXxxDialog 方法返回整數時,可能的值爲:

  • YES_OPTION
  • NO_OPTION
  • CANCEL_OPTION
  • OK_OPTION
  • CLOSED_OPTION
示例:
顯示一個錯誤對話框,該對話框顯示的 message 爲 'alert':
JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE);

顯示一個內部信息對話框,其 message 爲 'information':
JOptionPane.showInternalMessageDialog(frame, "information",
"information", JOptionPane.INFORMATION_MESSAGE);

顯示一個信息面板,其 options 爲 "yes/no",message 爲 'choose one':
JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION);

顯示一個內部信息對話框,其 options 爲 "yes/no/cancel",message 爲 'please choose one',並具有 title 信息:
JOptionPane.showInternalConfirmDialog(frame, "please choose one", "information",JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);

顯示一個警告對話框,其 options 爲 OK、CANCEL,title 爲 'Warning',message 爲 'Click OK to continue':
Object[] options = { "OK", "CANCEL" };
JOptionPane.showOptionDialog(null, "Click OK to continue", "Warning",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,null, options, options[0]);

顯示一個要求用戶鍵入 String 的對話框:
String inputValue = JOptionPane.showInputDialog("Please input a value");

顯示一個要求用戶選擇 String 的對話框:
Object[] possibleValues = { "First", "Second", "Third" };
Object selectedValue = JOptionPane.showInputDialog(null,
"Choose one", "Input",JOptionPane.INFORMATION_MESSAGE, null,possibleValues, possibleValues[0]);

直接使用:
要直接創建和使用 JOptionPane,標準模式大致如下:
     JOptionPane pane = new JOptionPane(arguments);
     pane.set.Xxxx(...); // Configure
     JDialog dialog = pane.createDialog(parentComponent, title);
     dialog.show();
     Object selectedValue = pane.getValue();
     if(selectedValue == null)
       return CLOSED_OPTION;
     //If there is not an array of option buttons:
     if(options == null) {
       if(selectedValue instanceof Integer)
          return ((Integer)selectedValue).intValue();
       return CLOSED_OPTION;
     }
     //If there is an array of option buttons:
     for(int counter = 0, maxCounter = options.length;
        counter < maxCounter; counter++) {
        if(options[counter].equals(selectedValue))
        return counter;
     }
     return CLOSED_OPTION;
 

警告:Swing 不是線程安全的。有關更多信息,請參閱 Swing's Threading Policy

警告:此類的序列化對象與以後的 Swing 版本不兼容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠程方法調用)。從 1.4 版本開始,已在 java.beans 包中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder

另請參見:
JInternalFrame
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章