JOptionPane類使我們很容易創(chuàng)建和顯示標(biāo)準(zhǔn)模態(tài)對(duì)話框。
它包含許多靜態(tài)方法來創(chuàng)建不同類型的JDialog,用細(xì)節(jié)填充它們,并將它們顯示為模態(tài)的JDialog。
當(dāng)JDialog關(guān)閉時(shí),該方法返回一個(gè)值以指示用戶對(duì)JDialog的操作。
JOptionPane類用作工廠來創(chuàng)建標(biāo)準(zhǔn)對(duì)話框。
我們可以顯示以下四種標(biāo)準(zhǔn)對(duì)話框:
JOptionPane類的靜態(tài)方法顯示標(biāo)準(zhǔn)的JDialog具有名稱如show Type
Dialog()。 類型
可以替換為Message,Confirm,Input和Option。
JOptionPane類的靜態(tài)方法顯示標(biāo)準(zhǔn)的JDialog具有名稱如show Type
Dialog()。 類型
可以替換為Message,Confirm,Input和Option。...
所有四種類型的標(biāo)準(zhǔn)對(duì)話框都接受不同類型的參數(shù),并返回不同類型的值。
所有四種類型的標(biāo)準(zhǔn)對(duì)話框都接受不同類型的參數(shù),并返回不同類型的值。...
ID | 參數(shù)/說明 |
---|---|
1 | 組件parentComponent JDialog以父組件為中心。 如果它為null,JDialog將在屏幕上居中。 |
2 | 對(duì)象消息通常,它是一個(gè)字符串。 它還可以顯示Swing組件,圖標(biāo)。 如果我們傳遞任何其他對(duì)象,則對(duì)該對(duì)象調(diào)用toString()方法,并顯示返回的字符串。 我們還可以傳遞一個(gè)對(duì)象數(shù)組,并且數(shù)組的每個(gè)元素將一個(gè)接一個(gè)地垂直顯示。 |
3 |
int messageType 設(shè)置消息的類型。 根據(jù)消息的類型,在對(duì)話框中將顯示一個(gè)適當(dāng)?shù)膱D標(biāo)。 可用的消息類型有: |
4 |
Int選項(xiàng)類型指定對(duì)話框上的按鈕。 我們可以使用以下選項(xiàng)。 |
5 |
Int選項(xiàng)類型指定對(duì)話框上的按鈕。 我們可以使用以下選項(xiàng)。 |
6 | 字符串標(biāo)題對(duì)話框的標(biāo)題。 如果我們不傳遞此參數(shù),則提供默認(rèn)標(biāo)題。 |
7 | 對(duì)象initialValue 設(shè)置在輸入對(duì)話框中顯示的初始值。 |
通常,當(dāng)用戶關(guān)閉對(duì)話框時(shí),我們要檢查用戶點(diǎn)擊的按鈕。 下面是常量列表,我們可以使用它來檢查與retuned值的相等性:
CLOSED_OPTION表示用戶使用標(biāo)題欄上的關(guān)閉(X)菜單按鈕關(guān)閉對(duì)話框。
OK_OPTION表示用戶單擊對(duì)話框上的確定按鈕將其關(guān)閉。
OK_OPTION表示用戶單擊對(duì)話框上的確定按鈕將其關(guān)閉。...
對(duì)于對(duì)話框中的多個(gè)按鈕,0表示第一個(gè)按鈕單擊,1個(gè)表示第二個(gè)按鈕單擊,依此類推。
對(duì)于對(duì)話框中的多個(gè)按鈕,0表示第一個(gè)按鈕單擊,1個(gè)表示第二個(gè)按鈕單擊,依此類推。...
消息對(duì)話框顯示帶有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)
消息對(duì)話框顯示帶有OK按鈕的信息。 該方法不返回任何值。 showMessageDialog()方法的簽名如下所示:...
import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Message!", "FYI", JOptionPane.INFORMATION_MESSAGE); } }
我們可以使用showConfirmDialog()方法顯示確認(rèn)對(duì)話框。
用戶的響應(yīng)由返回值指示。
以下代碼顯示確認(rèn)對(duì)話框,并處理用戶的響應(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()方法請(qǐng)求用戶輸入,并為用戶的輸入指定一個(gè)初始值。
如果我們希望用戶從列表中選擇一個(gè)值,我們可以傳遞一個(gè)包含該列表的對(duì)象數(shù)組。 UI將在合適的組件(如JComboBox或JList)中顯示列表。
如果我們希望用戶從列表中選擇一個(gè)值,我們可以傳遞一個(gè)包含該列表的對(duì)象數(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()方法返回一個(gè)String,這是用戶在輸入字段中輸入的文本。
如果用戶取消輸入對(duì)話框,則返回null。
以下代碼顯示帶有選項(xiàng)列表的輸入對(duì)話框。 用戶可以從列表中選擇一個(gè)選項(xiàng)。 此版本的showInputDialog()方法返回一個(gè)對(duì)象,而不是一個(gè)字符串。
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()方法自定義選項(xiàng)按鈕,該方法聲明如下:
int showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)
我們可以使用showOptionDialog()方法自定義選項(xiàng)按鈕,該方法聲明如下:...
如果我們?cè)趏ptions參數(shù)中傳遞組件,則組件將顯示為選項(xiàng)。 如果我們傳遞任何其他對(duì)象(如字符串),則會(huì)在options數(shù)組中為每個(gè)元素顯示一個(gè)按鈕。
以下代碼顯示如何在對(duì)話框中顯示自定義按鈕。
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."); } } }
以下代碼顯示如何在對(duì)話框中顯示自定義按鈕。...
以下代碼顯示自定義可調(diào)整大小的對(duì)話框。
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); } }
更多建議: