21、Java Swing JOptionPane:对话框组件
對話框通常用作從用戶處接收附加信息,或者提供發生了某種事件的通知。
Java 提供了 JOptionPane 類,用來創建標準對話框,也可以通過擴展 JDialog 類創建自定義的對話框。
JOptionPane 類可以用來創建 4 種類型的標準對話框:
確認對話框、
消息對話框、
輸入對話框、
選項對話框。
確認對話框
確認對話框顯示消息,并等待用戶單擊“確定”按鈕來取消對話框,該對話框不返回任何值。而確認對話框詢問一個問題,需要用戶單擊合適的按鈕做出響應。確認對話框返回對應被選按鈕的值。
創建確認對話框的方法如下:
public static int showConfirmDialog(Component parentComponent,Object message,String title,int optionType,int messageType,Icon icon)參數 parentComponent、message、title、messageType 和 icon 與 showMessageDialog() 方法中的參數的含義相同。其中,
-
只有 parentComponent 和 message 參數是必需的,
-
title 的默認值為“選擇一個選項”。
-
messageType 的默認值是 QUESTION_MESSAGE。
-
optionType 參數用于控制在對話框上顯示的按鈕,可選值如下:
0 或 JOptionPane.YES_NO_OPTIION。1 或 JOptionPane.YES_NO_CANCEL_0PTII0N。2 或 JOptionPane.OK_CANCEL_OPTIION。
例如,使用 showCon&mDialog() 方法創建 3 個確認對話框,該方法中指定的參數個數和參數值都是不同的,語句如下:
JOptionPane.showConfirmDialog(p,"確定要刪除嗎?","刪除提示",0); JOptionPane.showConfirmDialog(p,"確定要刪除嗎?","刪除提示",1,2); ImageIcon icon=new ImageIcon("F:\\pic\\n63.gif"); JOptionPane.showConfirmDialog(p,"確定要刪除嗎?","刪除提示",2,1,icon);這 3 條語句所實現的對話框分別如圖所示。
showConfirmDialog() 方法返回所選選項對應的值,這些值可以是整數或常量值,如下:
- 0 或 JOptionPane.YES_OPTIION。
- 1 或 JOptionPane.NO_OPTIION。
- 2 或 JOptionPane.CANCEL_OPTIION。
- 0 或 JOptionPane.OK_OPTIION。
- -1 或 JOptionPane.CLOSED_OPTIION。
提示:除了 CLOSED_OPTIION 外,其他常量值都對應于激活的按鈕。CLOSED_OPTIION
表示對話框在沒有任何按鈕激活的情況下關閉,例如單擊對話框上的關閉圖標按鈕。
消息對話框
消息對話框顯示一條提示或警告用戶的信息,并等待用戶單擊 OK 或“確定”按鈕以關閉對話框。創建消息對話框的方法如下:
public static void showMessageDialog(Component parentComponent,Object message,String title,int messageType,Icon icon)其中,
-
只有 parentComponent 參數和 message 參數是必須指定的。
-
parentComponent 可以是任意組件或者為空;
-
message 用來定義提示信息,它是一個對象,但是通常使用字符串表示;
-
title 是設置對話框標題的字符串;
-
messageType 是以下整型或常量中的一個。
0 或 JOptionPane.ERROR_MESSAGE。
1 或 JOptionPane.INFORMATION_MESSAGE。
JOptionPane.PLAIN_MESSAGE。
2 或 JOptionPane.WARNING_MESSAGE。
3 或 JOptionPane.QUESTION_MESSAGE。
默認情況下,messageType 的值是 JOptionPane.INFORMATION_MESSAGE。除類型 PLAIN_MESSAGE外,每種類型都有相應的圖標,也可以通過 icon 參數提供自己的圖標。
例如,下面的代碼演示了不同的 messageType 取值實現的效果。
JOptionPane.showMessageDialog(p,"用戶名或密碼錯誤!","錯誤 ",0); JOptionPane.showMessageDialog(p,"請注冊或登錄...","提示",1); JOptionPane.showMessageDialog(p,"普通會員無權執行刪除操作!","警告",2); JOptionPane.showMessageDialog(p,"你是哪一位?請輸入用戶名","問題",3); JOptionPane.showMessageDialog(p,"掃描完畢,沒有發現病毒!","提示",JOptionPane.PLAIN_MESSAGE);第一行語句表示創建一個錯誤對話框。第二行語句表示創建一個提示對話框。第三行語句表示創建一個警告對話框。第四行語句表示創建一個問題對話框。第五行語句表示創建一個無圖標對話框。這 5 條語句創建的對話框效果分別如圖 2 所示。
輸入對話框
輸入對話框用于接收用戶的輸入。輸入組件可以由文本框、下拉列表或者列表框進行實現。如果沒有指定可選值,那么就使用文本框接收輸入;如果指定了一組可選值,可選值的個數小于 20,那么將使用下拉列表顯示;如果可選值的個數大于或等于 20,那么這些可選值將通過列表框顯示。
創建輸入對話框的方法如下:
public static String showInputDialog(Component parentComponent,Object message,String title,int messageType) public static Object showInputDSalog(Component parentComponent,Object message,String title,int messageType,Icon icon,Object[] selectionValue,Object initValue)其中,
- 第一個 showInputDialog() 方法用于使用文本框輸入,
- 第二個 showInputDialog() 方法用于下拉列表或列表框的顯示方式。
- 參數 parentComponent 是必需的,
- message 默認為空,
- title 默認值為“輸入”,
- messageType 的值默認為 3 或 JOptionPane.QUESTION_MESSAGE。
例如,使用 showInputDialog() 方法創建兩個輸入文本框,語句如下:
JOptionPane.showInputDialog(panel,"請輸入用戶名","輸入用戶名",1); String[] str={"admin","maxianglin","calcl23456","adminl23"}; JOptionPane.showInputDialog(panel,"請選擇用戶名","選擇用戶名",1,null,str,str[0]);第一個對話框沒有指定列表值,那么將顯示文本框;第二個對話框值顯示為下拉列表的形式,如圖 3 所示。
提示:showInputDialog() 方法中沒有 optionType
參數,表示輸入對話框的按鈕是不可以設置的,通常顯示“確定”和“取消”按鈕。
選項對話框
選項對話框允許用戶自己定制按鈕內容。創建選項對話框的方法如下:
public static int showOptionDialog(Component parentComponent,Object message,String title,int optionType,int messageType,icon icon,Object[] options,Object initValue)其中,
- 使用 options 參數指定按鈕,
- initValue 參數用于指定默認獲得焦點的按鈕。該方法返回表明激活的按鈕的一個整型值。
例如,創建一個 JButton 按鈕數組,然后使用 showOptionDialog() 方法創建一個選項對話框,根據這個 JButton 數組來顯示對話框的按鈕,如下:
JButton[] bs={new JButton("確定"),new JButton("取消"),new JButton("重置")}; JOptionPane.showOptionDialog(panel,"請選擇其中的一項:","選擇",1,3,null,bs,bs[0]);顯示效果如圖 4 所示。
總結
以上是生活随笔為你收集整理的21、Java Swing JOptionPane:对话框组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 19、Java Swing JToolB
- 下一篇: 22、Java Swing JTable