Java Swing标准对话框
Java Swing教程 - Java Swing标准对话框
JOptionPane类使我们很容易创建和显示标准模态对话框。
它包含许多静态方法来创建不同类型的JDialog,用细节填充它们,并将它们显示为模态的JDialog。
当JDialog关闭时,该方法返回一个值以指示用户对JDialog的操作。
JOptionPane类用作工厂来创建标准对话框。
我们可以显示以下四种标准对话框:
- Message Dialog
- Confirmation Dialog
- Input Dialog
- Option Dialog
JOptionPane类的静态方法显示标准的JDialog具有名称如show Type
Dialog()。 类型
可以替换为Message,Confirm,Input和Option。
JOptionPane类的静态方法显示标准的JDialog具有名称如show Type
Dialog()。 类型
可以替换为Message,Confirm,Input和Option。...
所有四种类型的标准对话框都接受不同类型的参数,并返回不同类型的值。
所有四种类型的标准对话框都接受不同类型的参数,并返回不同类型的值。...
ID | 参数/说明 |
---|---|
1 | 组件parentComponent JDialog以父组件为中心。 如果它为null,JDialog将在屏幕上居中。 |
2 | 对象消息通常,它是一个字符串。 它还可以显示Swing组件,图标。 如果我们传递任何其他对象,则对该对象调用toString()方法,并显示返回的字符串。 我们还可以传递一个对象数组,并且数组的每个元素将一个接一个地垂直显示。 |
3 |
int messageType 设置消息的类型。 根据消息的类型,在对话框中将显示一个适当的图标。 可用的消息类型有: |
4 |
Int选项类型指定对话框上的按钮。 我们可以使用以下选项。 |
5 |
Int选项类型指定对话框上的按钮。 我们可以使用以下选项。 |
6 | 字符串标题对话框的标题。 如果我们不传递此参数,则提供默认标题。 |
7 | 对象initialValue 设置在输入对话框中显示的初始值。 |
通常,当用户关闭对话框时,我们要检查用户点击的按钮。 下面是常量列表,我们可以使用它来检查与retuned值的相等性:
- OK_OPTION
- YES_OPTION
- NO_OPTION
- CANCEL_OPTION
- CLOSED_OPTION
CLOSED_OPTION表示用户使用标题栏上的关闭(X)菜单按钮关闭对话框。
OK_OPTION表示用户单击对话框上的确定按钮将其关闭。
OK_OPTION表示用户单击对话框上的确定按钮将其关闭。...
对于对话框中的多个按钮,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()方法显示确认对话框。
用户的响应由返回值指示。
以下代码显示确认对话框,并处理用户的响应:
//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()方法请求用户输入,并为用户的输入指定一个初始值。
如果我们希望用户从列表中选择一个值,我们可以传递一个包含该列表的对象数组。 UI将在合适的组件(如JComboBox或JList)中显示列表。
如果我们希望用户从列表中选择一个值,我们可以传递一个包含该列表的对象数组。 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参数中传递组件,则组件将显示为选项。 如果我们传递任何其他对象(如字符串),则会在options数组中为每个元素显示一个按钮。
以下代码显示如何在对话框中显示自定义按钮。
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."); } } }
自定义选项按钮...
以下代码显示如何在对话框中显示自定义按钮。...
以下代码显示自定义可调整大小的对话框。
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); } }
更多建议: