Java消息提示框JOptionPane的使用方法
JOptionPane类的常用静态方法如下:
1. showInputDialog()
2. showConfirmDialog()
3. showMessageDialog()
4. showOptionDialog()
showInputDialog()
JOptionPane.showInputDialog("你对java语言感兴趣吗?");
JOptionPane.showInputDialog("你对java语言感兴趣吗?","yes");
JOptionPane.showInputDialog(null,"你对java语言感兴趣吗?","yes");
JOptionPane.showInputDialog(null, "你对java语言感兴趣吗?\n","标题",JOptionPane.ERROR_MESSAGE);
JOptionPane.showInputDialog(null, "你对java语言感兴趣吗?\n", "标题", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showInputDialog(null, "你对java语言感兴趣吗?\n", "标题", JOptionPane.WARNING_MESSAGE);
JOptionPane.showInputDialog(null, "你对java语言感兴趣吗?\n","标题",JOptionPane.QUESTION_MESSAGE);
JOptionPane.showInputDialog(null, "你对java语言感兴趣吗?\n", "标题", JOptionPane.PLAIN_MESSAGE);
Object[] objects = {"甲", "乙", "丙","丁"};
JOptionPane.showInputDialog(null, "请选择你的身份\n", "身份",JOptionPane.ERROR_MESSAGE,
new ImageIcon("src/icons/icon.png"), objects, objects[2]);
JOptionPane.showInputDialog(null, "请选择你的身份\n", "身份",JOptionPane.INFORMATION_MESSAGE,
new ImageIcon("src/icons/icon.png"), objects, objects[2]);
JOptionPane.showInputDialog(null, "请选择你的身份\n", "身份",JOptionPane.WARNING_MESSAGE,
new ImageIcon("src/icons/icon.png"), objects, objects[2]);
JOptionPane.showInputDialog(null, "请选择你的身份\n", "身份",JOptionPane.QUESTION_MESSAGE,
new ImageIcon("src/icons/icon.png"), objects, objects[2]);
JOptionPane.showInputDialog(null, "请选择你的身份\n", "身份",JOptionPane.PLAIN_MESSAGE,
new ImageIcon("src/icons/icon.png"), objects, objects[2]);
Integer[] options = {1, 2, 3, 4, 5};
int n = (Integer)JOptionPane.showInputDialog(null, "Pick a number that is not prime:", "Prime numbers", JOptionPane.QUESTION_MESSAGE, null, options, options[2]);
System.out.println(n);
Object[] options = {3, "No", 5.2, true};
Object m = JOptionPane.showInputDialog(null, "Just pick something already!", "Mix & Match", JOptionPane.ERROR_MESSAGE, null, options, options[0]);
if(m instanceof Integer){
System.out.println("You picked an Integer!");
}else if(m instanceof String){
System.out.println("You picked a String!");
}else if(m instanceof Double){
System.out.println("You picked a Double!");
}else if(m instanceof Boolean){
System.out.println("You picked a Boolean!");
}
JPanel panel = new JPanel();
panel.setBackground(new Color(0, 0, 0));
panel.setSize(new Dimension(250, 32));
panel.setLayout(null);
JLabel label = new JLabel("It's your choice! :)");
label.setForeground(new Color(255, 255, 0));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(new Font("Arial", Font.BOLD, 11));
label.setBounds(0, 0, 250, 32);
panel.add(label);
UIManager.put("OptionPane.minimumSize",new Dimension(270, 120));
Object[] options = {2, "No", 5.6, true};
Object m = JOptionPane.showInputDialog(null, panel,
"Mix & Match", JOptionPane.PLAIN_MESSAGE, null, options, options[3]);
if(m instanceof Integer){
System.out.println("You picked an Integer!");
}else if(m instanceof String){
System.out.println("You picked a String!");
}else if(m instanceof Double){
System.out.println("You picked a Double!");
}else if(m instanceof Boolean){
System.out.println("You picked a Boolean!");
}
showConfirmDialog()
JOptionPane.showConfirmDialog(null, "你能每天坚持学习Java吗?", "每日提醒", JOptionPane.YES_NO_CANCEL_OPTION);
int i = JOptionPane.showConfirmDialog(null, "你能每天坚持学习Java吗?", "每日提醒", JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,new ImageIcon("src/icons/title.png"));
//根据返回值进行不同事件的处理
switch (i){
case JOptionPane.YES_OPTION:
System.out.println("是");
break;
case JOptionPane.NO_OPTION:
System.out.println("否");
break;
case JOptionPane.CANCEL_OPTION:
System.out.println("取消");
break;
case JOptionPane.CLOSED_OPTION:
System.out.println("默认");
break;
default:
break;
}
showOptionDialog()
Object[] options = {"说","不说"};
JOptionPane.showOptionDialog(null,"你说话呀!!","标题",
JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[0]);
Object[] options = {"感兴趣","不感兴趣"};
JOptionPane.showOptionDialog(null,"你对Java语言感兴趣吗?","问题",
JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[0]);
showMessageDialog()
JOptionPane类的showMessageDialog方法的几个重载。
showMessageDialog只有一个确定按钮;
showMessageDialog(Component parentComponent, Object message)
这个方法里有两个参数,Component 类型的parentComponent和Object类型的message
第一个参数是parentComponent:确定Frame在其中显示的对话框; 如果null ,或者如果parentComponent没有Frame ,则使用默认值Frame,这里我使用的是null
第二个参数message:要显示的 Object ,message就是我们要在提示框里显示的信息,我使用的是字符串
JOptionPane.showMessageDialog(null, "这是消息的弹窗!" );
showMessageDialog(Component parentComponent, Object message, String title, int messageType)
这个方法比第一个方法增加了两个参数,String类型的title和int类型的messageType
第一个新增参数title是设置了可以改变窗体的主题信息,第一个方法默认了title为信息,在这个方法中你可以随意修改你想要的提示主题内容
第二个参数messageType是设置了信息提示内容的图标,来表示不用信息的内容,使人一目了然,第一个方法默认值为INFORMATION_MESSAGE或1,这个方法给我们提供了几个枚举值。
第一种 messagetType值为1,含义为提示信息
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", 1);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.YES_NO_CANCEL_OPTION);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.NO_OPTION);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.INFORMATION_MESSAGE);
这4个调用的结果都与第一个重载方法的结果相类似,都是一个信息的提示弹框的图标,只是title提供了自定义的方法而已,我这里把title的值设置为这是标题,结果如图
第二种 messagetType值为-1,含义为无提示类型
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", -1);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.DEFAULT_OPTION);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.CLOSED_OPTION);
这4个调用的结果和第一种的不同就是没有信息提示框的图标,将图标舍弃的方法,结果如图
第三种 messagetType值为0,含义为错误
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", 0);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.YES_NO_OPTION);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.YES_OPTION);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.OK_OPTION);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.ERROR_MESSAGE);
这5个调用的结果和第一种的不同也是信息提示框的图标的改变,这里将图标设置为了错误图示,结果如图
第四种 messagetType值为2,含义为警告
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", 2);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.WARNING_MESSAGE);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.CANCEL_OPTION);
这3个调用的结果和第一种的不同也是信息提示框的图标的改变,这里将图标设置为了警告图示,结果如图
第五种 messagetType值为3,含义为问题
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", 3);
JOptionPane.showMessageDialog(null, "这是消息", "这是标题", JOptionPane.QUESTION_MESSAGE);
这2个调用的结果和第一种的不同也是信息提示框的图标的改变,这里将图标设置为了警告图示,结果如图
showMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icon)
这个方法比第二个方法新增了一个类型Icon的参数icon,这个方法提供给我们一个自定义提示信息类型的方法,可以自己定义图标,加载图片的图标,可以帮助用户识别正在显示消息的种类。
参考文献:
- https://docs.oracle.com/javase/8/docs/api/index.html
- https://docs.oracle.com/javase/8/docs/api/javax/swing/JOptionPane.html
- https://blog.csdn.net/qq_40791843/article/details/91047377
- https://blog.csdn.net/cyan20115/article/details/106549457
- https://blog.csdn.net/weixin_43876121/article/details/100982551
评论区