JOptionPane類使我們很容易創(chuàng)建和顯示標準模態(tài)對話框。
它包含許多靜態(tài)方法來創(chuàng)建不同類型的JDialog,用細節(jié)填充它們,并將它們顯示為模態(tài)的JDialog。
當(dāng)JDialog關(guān)閉時,該方法返回一個值以指示用戶對JDialog的操作。
JOptionPane類用作工廠來創(chuàng)建標準對話框。
我們可以顯示以下四種標準對話框:
JOptionPane類的靜態(tài)方法顯示標準的JDialog具有名稱如show Type
Dialog()。 類型
可以替換為Message,Confirm,Input和Option。
JOptionPane類的靜態(tài)方法顯示標準的JDialog具有名稱如show Type
Dialog()。 類型
可以替換為Message,Confirm,Input和Option。...
所有四種類型的標準對話框都接受不同類型的參數(shù),并返回不同類型的值。
所有四種類型的標準對話框都接受不同類型的參數(shù),并返回不同類型的值。...
ID | 參數(shù)/說明 |
---|---|
1 | 組件parentComponent JDialog以父組件為中心。 如果它為null,JDialog將在屏幕上居中。 |
2 | 對象消息通常,它是一個字符串。 它還可以顯示Swing組件,圖標。 如果我們傳遞任何其他對象,則對該對象調(diào)用toString()方法,并顯示返回的字符串。 我們還可以傳遞一個對象數(shù)組,并且數(shù)組的每個元素將一個接一個地垂直顯示。 |
3 |
int messageType 設(shè)置消息的類型。 根據(jù)消息的類型,在對話框中將顯示一個適當(dāng)?shù)膱D標。 可用的消息類型有: |
4 |
Int選項類型指定對話框上的按鈕。 我們可以使用以下選項。 |
5 |
Int選項類型指定對話框上的按鈕。 我們可以使用以下選項。 |
6 | 字符串標題對話框的標題。 如果我們不傳遞此參數(shù),則提供默認標題。 |
7 | 對象initialValue 設(shè)置在輸入對話框中顯示的初始值。 |
通常,當(dāng)用戶關(guān)閉對話框時,我們要檢查用戶點擊的按鈕。 下面是常量列表,我們可以使用它來檢查與retuned值的相等性:
CLOSED_OPTION表示用戶使用標題欄上的關(guān)閉(X)菜單按鈕關(guān)閉對話框。
OK_OPTION表示用戶單擊對話框上的確定按鈕將其關(guān)閉。
OK_OPTION表示用戶單擊對話框上的確定按鈕將其關(guān)閉。...
對于對話框中的多個按鈕,0表示第一個按鈕單擊,1個表示第二個按鈕單擊,依此類推。
對于對話框中的多個按鈕,0表示第一個按鈕單擊,1個表示第二個按鈕單擊,依此類推。...
消息對話框顯示帶有OK按鈕的信息。 該方法不返回任何值。 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)
消息對話框顯示帶有OK按鈕的信息。 該方法不返回任何值。 showMessageDialog()方法的簽名如下所示:...
import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Message!", "FYI", JOptionPane.INFORMATION_MESSAGE); } }
我們可以使用showConfirmDialog()方法顯示確認對話框。
用戶的響應(yīng)由返回值指示。
以下代碼顯示確認對話框,并處理用戶的響應(yīng):
//from w ww .j a v a 2 s .c om import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { int response = JOptionPane.showConfirmDialog(null, "Save the file?", "Confirm Save Changes", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); switch (response) { case JOptionPane.YES_OPTION: System.out.println("yes"); break; case JOptionPane.NO_OPTION: System.out.println("no"); break; case JOptionPane.CANCEL_OPTION: System.out.println("cancel"); break; case JOptionPane.CLOSED_OPTION: System.out.println("closed."); break; default: System.out.println("something else"); } } }
我們可以使用showInputDialog()方法請求用戶輸入,并為用戶的輸入指定一個初始值。
如果我們希望用戶從列表中選擇一個值,我們可以傳遞一個包含該列表的對象數(shù)組。 UI將在合適的組件(如JComboBox或JList)中顯示列表。
如果我們希望用戶從列表中選擇一個值,我們可以傳遞一個包含該列表的對象數(shù)組。 UI將在合適的組件(如JComboBox或JList)中顯示列表。...
import javax.swing.JOptionPane; /*from w w w. j av a 2 s . c om*/ public class Main { public static void main(String[] args) { String response = JOptionPane .showInputDialog("Please enter."); if (response == null) { System.out.println("cancelled."); } else { System.out.println("entered: " + response); } } }
上面的代碼中的showInputDialog()方法返回一個String,這是用戶在輸入字段中輸入的文本。
如果用戶取消輸入對話框,則返回null。
以下代碼顯示帶有選項列表的輸入對話框。 用戶可以從列表中選擇一個選項。 此版本的showInputDialog()方法返回一個對象,而不是一個字符串。
import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JOptionPane; // w w w. j a v a2s .co m public class Main { public static void main(String[] args) { JComponent parentComponent = null; Object message = "Please select"; String title = "JOptionPane Input Dialog"; int messageType = JOptionPane.INFORMATION_MESSAGE; Icon icon = null; Object[] selectionValues = new String[] { "A", "B", "C" }; Object initialSelectionValue = selectionValues[2]; Object response = JOptionPane.showInputDialog(parentComponent, message, title, messageType, icon, selectionValues, initialSelectionValue); if (response == null) { System.out.println("we have cancelled the input dialog."); } else { System.out.println("we entered: " + response); } } }
我們可以使用showOptionDialog()方法自定義選項按鈕,該方法聲明如下:
int showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)
我們可以使用showOptionDialog()方法自定義選項按鈕,該方法聲明如下:...
如果我們在options參數(shù)中傳遞組件,則組件將顯示為選項。 如果我們傳遞任何其他對象(如字符串),則會在options數(shù)組中為每個元素顯示一個按鈕。
以下代碼顯示如何在對話框中顯示自定義按鈕。
import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JOptionPane; /* ww w .j a v a 2 s .c o m*/ public class Main { public static void main(String[] args) { JComponent parentComponent = null; Object message = "How is JOptionPane?"; String title = "JOptionPane Option Dialog"; int messageType = JOptionPane.INFORMATION_MESSAGE; Icon icon = null; Object[] options = new String[] { "A", "B", "C" }; Object initialOption = options[2]; int response = JOptionPane.showOptionDialog(null, message, title, JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, icon, options, initialOption); switch (response) { case 0: case 1: case 2: System.out.println("we selected:" + options[response]); break; case JOptionPane.CLOSED_OPTION: System.out.println("we closed the dialog box."); break; default: System.out.println("I don"t know what we did."); } } }
以下代碼顯示如何在對話框中顯示自定義按鈕。...
以下代碼顯示自定義可調(diào)整大小的對話框。
import javax.swing.JDialog; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { JOptionPane pane = new JOptionPane("JOptionPane", JOptionPane.INFORMATION_MESSAGE); String dialogTitle = "Resizable Custom Dialog"; JDialog dialog = pane.createDialog(dialogTitle); dialog.setResizable(true); dialog.setVisible(true); } }
更多建議: