目录
一、JOptionPane的介绍
通过JOptionPane可以非常方便地创建一些简单的对话框,Swing已经为这些对话框添加了相应的组件,无须程序员手动添加组件。JOptionPane提供以下四个方法来创建对话框。
方法: showMessageDialog 消息对话框,告知用户某事已发生,用户只能单击确定按钮 showConfirmDialog 确认对话框,向用户确认某个问题,用户可以选择yes,no,cancel等 选项 showInputDialog 输入对话框,提示要求输入某些信息。 showOptionDialog 自定义选项对话框,允许使用自定义选项,可取代showConfirmDialog 所产生的对话框
上述方法都有很多重载形式,选择其中一种最全的形式如下:
showxxxDialog(Component p
Object message
String title
int optionType
int messageType
Icon icon
Object[] options
Object ini)
参数解释:
p:当前对话框的父组件
message:对话框显示的信息,可以是字符串,组件,图片等。
title:当前对话框的标题
optionType:当前对话框显示的按钮类型DEFAULT_OPTION,YES_NO_OPTION,YES_NO_CANCEL_OPTION,OK_CANCEL_OPTION
messageType:当前对话框的类型:ERROR_MESSAGE,INFORMATION_MESSAGE,WARNING_MESSAGE,QUESTION_MESSAGE,PLAIN_MESSAGE
icon:当前对话框左上角的图标
options:自定义下拉列表的选项
ini:自定义选项中的默认选项
二、JOptionalPane的使用
(1)消息对话框
案例:制作如图所示的界面,将文本域中的内容显示消息对话框中。
public class exer1 { JFrame s=new JFrame("程序练习"); JTextArea text=new JTextArea(10,40); JButton b=new JButton(new AbstractAction("消息对话框") { @Override public void actionPerformed(ActionEvent e) { //点击按钮后弹出一个消息对话框,并且显示文本域中的内容 String ss=text.getText();//获取文本域内容 //参数最后一个表示指定消息对话框的类型:错误消息,警告消息,问题消息...... //错误消息 //JOptionPane.showMessageDialog(s,text,"消息对话框",JOptionPane.ERROR_MESSAGE); //警告消息 JOptionPane.showMessageDialog(s,text,"消息对话框",JOptionPane.WARNING_MESSAGE); //问题消息 //JOptionPane.showMessageDialog(s,text,"消息对话框",JOptionPane.QUESTION_MESSAGE); // 消息对话框 // JOptionPane.showMessageDialog(s,text,"消息对话框",JOptionPane.INFORMATION_MESSAGE); //指定插入的图片 // JOptionPane.showMessageDialog(s,ss,"消息对话框",JOptionPane.ERROR_MESSAGE,new ImageIcon()); } }); public void init(){ //组装组件 s.add(text); s.add(b,BorderLayout.SOUTH); s.pack(); s.setVisible(true); s.setDefaultCloseOperation(3); } }
(2) 确认对话框
案例:制作如图所示的界面,点击的选项在文本框中会显示。
public class exer1 { JFrame s=new JFrame("程序练习"); JTextArea text=new JTextArea(10,40); JButton b=new JButton(new AbstractAction("确认对话框") { @Override public void actionPerformed(ActionEvent e) { String ss=text.getText(); text.append("\n"); int res=JOptionPane.showConfirmDialog(s,ss,"确认对话框",JOptionPane.YES_NO_OPTION); if(res==JOptionPane.YES_OPTION){ text.append("点击的是 是\n"); } if(res==JOptionPane.NO_OPTION){ text.append("点击的是 否\n"); } } }); public void init(){ s.add(text); s.add(b,BorderLayout.SOUTH); s.setDefaultCloseOperation(3); s.pack(); s.setVisible(true); } }
(3)输入对话框
案例:制作如图所示的界面
public class exer1 { JFrame s=new JFrame("程序练习"); JTextArea text=new JTextArea(10,40); JButton b=new JButton(new AbstractAction("输入对话框") { @Override public void actionPerformed(ActionEvent e) { //弹出输入对话框 //返回值是对话框中输入的内容 String res=JOptionPane.showInputDialog(s,"请输入信息:","输入对话框",JOptionPane.INFORMATION_MESSAGE); text.append(res+"\n"); } }); public void init(){ s.add(text); s.add(b,BorderLayout.SOUTH); s.setDefaultCloseOperation(3); s.pack(); s.setVisible(true); } }
(4)选项对话框
案例:制作如图所示的界面,选择对应的选项,则在文本域中会显示。
public class exer1 { JFrame s=new JFrame("程序练习"); JTextArea text=new JTextArea(10,40); JButton b=new JButton(new AbstractAction("选项对话框") { @Override public void actionPerformed(ActionEvent e) { //选项对话框 String[] ss={"大号","中号","小号"}; //返回值是数组下标,最后一个参数是默认选项 int res=JOptionPane.showOptionDialog(s,"你选择的型号是:","选项对话框", JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE,null,ss,"中号"); if(res==0){ text.append("用户选择"+ss[0]); } if(res==1){ text.append("用户选择"+ss[1]); } if(res==2){ text.append("用户选择"+ss[2]); } } }); public void init(){ s.add(text); s.add(b,BorderLayout.SOUTH); s.setDefaultCloseOperation(3); s.pack(); s.setVisible(true); } }