C語言中文網 目錄
首頁 > Java Swing 閱讀:1,505

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 條語句所實現的對話框分別如圖 1 所示。

確認對話框  確認對話框  確認對話框
圖1 確認對話框

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 所示。

不同類型的消息對話框  不同類型的消息對話框  不同類型的消息對話框

不同類型的消息對話框  不同類型的消息對話框
圖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 所示。

輸入對話框  輸入對話框
圖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 所示。

“選擇”對話框
圖4 “選擇”對話框

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo