当前位置: 首页 > news >正文

Java图形化界面---JOptionPane

目录

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

相关文章:

  • 网站横幅怎么做/太原seo排名收费
  • 合肥网站seo诊断/网络营销主要学什么
  • 网站建设怎么评估/营销网络推广哪家好
  • 网站关键词怎样优化/杭州百度快照
  • 做的网站如何发布会/百度软文
  • wordpress自定义作者连接/seo黑帽培训骗局
  • ubuntu20.04下出现protoc与gazebo版本问题
  • 通信电子、嵌入式类面试题刷题计划03
  • [ECE]模拟试题-7
  • 作为java工程师这些概念要理清(一)
  • 安科瑞智能仪表在密集母线行业中的应用
  • nacos在国产银河麒麟系统飞腾CPU部署安装
  • PaddleNLP开源UTC通用文本分类技术,斩获ZeroCLUE、FewCLUE双榜第一
  • musl pwn 入门 (2)
  • HNUCM-蓝桥杯PythonB组寒假练习2
  • Python基础(二十五):异常处理基础知识
  • 测试开发知识总结(一)
  • ant-design V3升级V4记录(成功篇)