JOptionPane 收藏

 

2012計算機等級考試二級Java對話框學習教程(上)

8.6 對話框

到目前爲止,我們所介紹的每個用戶界面組件都出現在應用程序創建的一個框架窗口中。但有時候我們需要彈出獨立的對話框以顯示信息或者從用戶收集信息。對話框,顧名思義,就是向用戶顯示信息並獲取程序繼續運行所需數據的窗口,可以起到與用戶交互的作用。從本質上講,對話框時一種特殊的窗體,它通過一個或多個組件與用戶交互。與JFrame一樣,對話框有邊框、有標題且獨立存在的容器,並且不能被其他容器所包容,但是對話框不能作爲程序的最外層容器,也不能保護菜單欄。此外,java中的對話框上沒有最大、最小化按鈕。

8.6.1 JOptionPane 選項對話框

JOptionPane提供了許多對話框樣式,該類能夠讓你在不編寫任何專門對話框代碼的情況下彈出一個簡單的對話框。

JOptionPane類提供了7個構造方法用於創建JOptionPane的類對象,不過在實際使用時,

通常不是用new方式創建,而是使用JOptionPane類提供的一些靜態方法產生。JOptionPane有四個靜態方法來顯示這些簡單對話框:

(1)showMessageDialog:提示信息對話框,這種對話框通常只含有一個“確定”按鈕。

(2)showConfirmDialog :確認對話框,這類對話框通常會詢問用戶一個問題,要求用戶做YES/NO的回答。

(3)showOptionDialog:選擇對話框,這類對話框可以讓用戶自己定義對話框的類型。

(4)showInputDialog:輸入對話框,這類對話框可以讓用戶輸入相關的信息,當用戶完成輸入並按下確定按鈕後,系統會得到用戶所輸入的信息。

對於每種形式的對話框都有多個靜態重載方法,下面分別予以說明。

1. Message Dialog

Message Dialog稱爲提示信息對話框,這種對話框中通常只含有一個“確定”按鈕。可以使用showMessage Dialog靜態方法來顯示一個Message Dialog,showMessageDialog方法具有如下重載形式。

·showMessageDialog(Component parentComponent, Object message)

·showMessageDialog(Component parentComponent, Object message, String title, int messageType)

·showMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icon)

各參數的含義如下:

parentComponent - 確定在其中顯示對話框的 Frame;如果爲 null 或者其不具有 Frame,則使用默認的 Frame

message - 要顯示的 Object

title - 對話框的標題字符串

messageType - 要顯示的消息類型,int枚舉類型:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGE,這5個值都是JOptionPane的靜態數據成員,可直接使用JOptionPane加“。”的方式使用,5個消息類型的顯示效果如下表

圖8-14 messageType顯示效果

icon - 要在對話框中顯示的圖標,該圖標是用戶自定義的圖標,如果顯示該圖標,則不會再顯示messageType指定的消息類型的系統圖標。一般不需要使用,除非用戶有特定需求。

showMessageDialog方法無返回值,Message Dialog只是告知用戶某些信息,用戶除了點擊確定按鈕外不能與其進行交互。

一個典型的Message Dialog的顯示效果見下圖

圖8-12 典型Message Dialog顯示效果

對應語句:

JOptionPane.showMessageDialog(null, “這是一個消息對話框嗎?”,“對話框title”,JOptionPane.QUESTION_MESSAGE,null);

2.ConfirmDialog

Confirm Dialog稱爲確認對話框,這類對話框通常會詢問用戶一個問題,要求用戶作出YES/NO的回答。可以使用showConfirmDialog靜態方法來顯示一個Confirm Dialog,showConfirmDialog方法具有如下重載形式。

showConfirmDialog(Component parentComponent, Object message)

showConfirmDialog(Component parentComponent, Object message, String title, int optionType)

showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType)

showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon)

showConfirmDialog方法中有6個參數,其中5個與showMessageDialog的參數相同,含義也一樣,這裏不再重複說明,showConfirmDialog方法中新增一個參數optionType,該參數的含義如下:

optionType—指定可用於對話框的選項的 int:YES_NO_OPTION、YES_NO_CANCEL_OPTION 或 OK_CANCEL_OPTION,具體的顯示效果見下表

表8-15 optionType顯示效果

showConfirmDialog的返回值爲int類型。其中YES,OK=0;NO=1;CANCEL=2;CLOSED=-1(用戶直接點擊關閉按鈕關閉對話框)。通過對返回值的判斷,可以做到與用戶之間的交互(如用戶是按下了確定按鈕 還是取消按鈕,根據按下按鈕的不同做不同的處理)

下面是一個典型的Confirm Dialog的顯示效果。

圖8-13典型Confirm Dialog顯示效果

對應語句:JOptionPane.showConfirmDialog(null, “你確認這是一個確認對話框嗎?”,“對話框title”,JOptionPane.YES_NO_OPTION);

3.Input Dialog

Input Dialog稱爲輸入對話框,這類對話框可以讓用戶輸入相關的信息,當用戶完成輸入並按下確定按鈕後,系統會得到用戶所輸入的信息。輸入對話框不見可以讓用戶自行輸入數據,也可以提供ComboBox組件讓用戶選擇相關信息,避免用戶輸入錯誤。可以使用showInputDialog靜態方法來顯示一個Input Dialog,showInputDialog方法具有如下重載形式。

showInputDialog(Object message)

showInputDialog(Object message, Object initialSelectionValue)

showInputDialog(Component parentComponent, Object message)

showInputDialog(Component parentComponent,Object message, Object initialSelectionValue)

showInputDialog(Component parentComponent, Object message, String title, int messageType)

showInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)

showInputDialog方法中有7個參數,其中5個與showMessageDialog的參數相同,含義也一樣,這裏不再重複說明,showInputDialog方法中新增兩個參數,selectionValues 和initialSelectionValue,含義如下:

selectionValues—用戶可能的選擇值,以數組方式賦值,顯示形式爲ComboBox。

initialSelectionValue—對話框初始化時輸入框中的顯示值。

showInputDialog方法的返回值有兩種:String類型和Object類型,當用戶按下確定按鈕時會返回用戶輸入(或選擇)的信息,若按下取消按鈕則會返回null。

下面是一個典型的Input Dialog的顯示效果。

圖8-14典型Input Dialog顯示效果

對應語句:

JOptionPane.showInputDialog(null ,“請選擇城市:”,“對話框title”, JOptionPane.INFORMATION_MESSAGE,null,new String[]{“北京”,“上海”,“廣州”,“天津 ”},“北京”);

4.Option Dialog

Option Dialog稱爲選擇對話框,這類對話框可以讓用戶自己定義對話框的類型。它可以根據需要改變按鈕上的文字,而不是系統默認的“確定”、“取消”、“是”、“否”等。可以使用showOptionDialog靜態方法來顯示一個Option Dialog,該靜態方法無重載方法,具體形式如下:

showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)

該方法提供了8個參數,其中7個參數與showInputDialog的參數完全相同,不再重複說明,新增一個參數options,其含義如下:

options—按鈕上的文字,系統會根據options的長度n創建n個按鈕。

showOptionDialog的返回值類型爲int,當點擊由options數組確定的按鈕時,其值爲options數組的下標值,當點擊關閉按鈕時其值爲-1。

下面是一個典型的Option Dialog的顯示效果。

圖8-15典型Option Dialog顯示效果

對應語句:

JOptionPane.showOptionDialog(null, “選項對話框”, “對話框title”, JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null,new String[]{“自定義1”,“自定義2”,“自定義3”},“自定義1”);

當點擊“自定義1”按鈕時,返回值爲0,“自定義2”按鈕時,返回值爲1,“自定義2”按鈕時,返回值爲2,點擊取消按鈕時返回值爲-1

 

 

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