Java图形化界面—JOptionPane

  • Post author:
  • Post category:java



目录


一、JOptionPane的介绍


二、JOptionalPane的使用


(1)消息对话框


(2) 确认对话框


(3)输入对话框


(4)选项对话框


一、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);
    }
}



版权声明:本文为gaoqiandr原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。