Java图形化界面---JOptionPane

news2024/11/27 3:41:12

目录

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/167021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud复习之Sleuth+Zipkin链路追踪实战

文章目录写作背景为什么要有链路监控SpringCloud SleuthZipkin能做什么上手实战启动一个Zipkin Server微服务集成SleuthZipkin写作背景 前面复习了SpringCloud Netflix的几个核心组件,包括Eureka、Ribbon、Feign、Hystrix、Zuul,并进行了Demo级别的实战…

高精度减法【c++】超详细讲解

前言 大家学过高精度加法之后,可能已经知道高精度减法的实现方法了吧 如果你还没有学过高精度加法的话,请点击这里(很详细的)—>高精度加法【C实现】详解 最大的问题 最大的问题莫过于负数问题了。其他方法和加法一样。 负…

4.二级缓存解析

文章目录1. 二级缓存配置2. 二级缓存结构3. 二级缓存命中条件4. 缓存空间的理解5. 二级缓存执行流程二级缓存也称作是应用级缓存,与一级缓存不同的,是它的作用范围是整个应用,而且可以跨线程使用。所以二级缓存有更高的命中率,适合…

从南丁格尔图到医学发展史

可视化中,前端用于表现不同类目的数据在总和中的占比的场景,往往会采用饼图。 针对数据大小相近,南丁格尔图的呈现会更加美观。 南丁格尔图,又称玫瑰图,是由弗罗伦斯南丁格尔发明。 弗洛伦斯南丁格尔 开创了护理事业…

二、django中的路由系统

django中的路由系统 django中路由的作用和路由器类似,当一个用户请求Django站点的一个页面时,是路由系统通过对url的路径部分进行匹配,一旦匹配成功就导入并执行对应的视图来返回响应。 django如何处理请求 当一个请求来到时,d…

SpringSecurityOauth2架构Demo笔记

总体分为SpringSecurityOauth2授权码模式演示和密码模式演示 一直下一步,依赖手动导入,SpringBoot版本改成2.2.5.RELEASE,JDK版本1.8 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xml…

Open3D 点云投影至指定球面(Python版本)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 假设球体的相关参数:中心为 C ( x c , y c , z c ) C(x_c,y_c,z_c)

【数据结构和算法】栈—模拟实现Stack和栈相关算法题

文章目录栈的定义Stack模拟实现相关算法题1.栈的压入弹出序列2.逆波兰表达式(后缀表达式)⭐1.什么是逆波兰表达式?如何转换成逆波兰表达式逆波兰表达式如何计算3.有效的括号总结栈的定义 栈作为一种数据结构&#xff0c;是一种只能在一端进行插入和删除操作的特殊线性表。它按…

华为MPLS跨域C2方案实验配置

MPLS隧道——跨域解决方案C1、C2讲解_静下心来敲木鱼的博客-CSDN博客_route-policy rr permit node 10 if-match mpls-labelhttps://blog.csdn.net/m0_49864110/article/details/127634890?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId…

深度学习——长短期记忆网络LSTM(笔记)

长短期记忆网络LSTM&#xff1a; ①隐变量模型存在长期信息保存和短期输入缺失问题&#xff0c;解决方法是LSTM ②发明于90年代 ③使用效果和GRU差别不大&#xff0c;但是实现起来复杂 1.长短期记忆网络 ①忘记门Ft&#xff1a;将值朝0减少 ②输入门It&#xff1a;是否忽…

最容易理解的并查集详解

并查集 并查集&#xff0c;在一些有N个元素的集合应用问题中&#xff0c;我们通常是在开始时让每个元素构成一个单元素的集合&#xff0c;然后按一定顺序将属于同一组的元素所在的集合合并&#xff0c;其间要查找一个元素在哪个集合中。 比如下面这幅图&#xff0c;总共有 10 …

MySQL之存储过程

MySQL存储过程1、基本介绍1.1、介绍存储过程&#xff1a;1.2、特点1.3、基本语法1.3.1、delimiter1.3.1、创建存储过程1.3.2、调用存储过程1.3.3、查看存储过程1.3.4、删除存储过程2、变量2.1、系统变量2.1.1、查询(会话、全局、模糊、精确)2.1.2、设置系统变量2.2、用户定义变…

IB学生必须具备的三大特质

以往的专栏亦提及过&#xff0c;修读IB课程要面对几大挑战。而要应对这些挑战&#xff0c;IB学生须具备以下三大条件&#xff1a; 时间管理能力 IBDP 首先&#xff0c;要对时间分配掌握得很好。两年的IB预科课程非常紧凑&#xff0c;不但每科都有其内部评核&#xff08;Interna…

VMware17虚拟机安装Ubuntu最新版本(Ubuntu22.04LTS)详细步骤

目录 一、概述 二、下载Ubuntu 22.04.1 LTS 三、在VMware虚拟机下安装Ubuntu22.04 四、配置网络 一、概述 Ubuntu是基于Linux内核开发的&#xff0c;免费下载&#xff0c;使用和分享的开源系统。如果需要在Linux下开发程序&#xff0c;这是一个很好的选择。本文介绍了Ubuntu最…

【问题解决】Tomcat启动服务时提示Filter初始化或销毁出现java.lang.AbstractMethodError错误

问题背景 最近在开发项目接口&#xff0c;基于SpringBoot 2.6.8&#xff0c;最终部署到外置Tomcat 8.5.85 下&#xff0c;开发过程中写了一个CookieFilter&#xff0c;实现javax.servlet.Filter接口&#xff0c;代码编译期正常。部署到外置Tomcat 8.5.85 下&#xff0c;在控制…

【Java寒假打卡】Java基础-类加载器

【Java寒假打卡】Java基础-类加载器概述类加载时机类加载的过程-加载类加载的过程-链接类加载的过程-初始化类加载器的分类类加载器-双亲委派模型类加载器-常用方法概述 负责将字节码文件加载到内存中 类加载时机 创建类的实例对象调用类的类方法访问类或者接口的类变量&am…

SymPy符号运算库与latex数学公式

SymPy符号运算库与latex数学公式sympylatexsympy SymPy是一个用于以符号运算为主的符号数学的Python库。它的目标是成为一个全功能的计算机代数系统(CAS)&#xff0c;同时保持代码尽可能的简单&#xff0c;以便易于理解和易于扩展。SymPy完全是用Python编写的。 官网地址:http…

【linux kernel】Linux设备驱动模型 | bus

文章目录一、导读二、与总线相关的数据结构&#xff08;2-1&#xff09;struct bus_type&#xff08;2-2&#xff09;struct subsys_private三、总线的初始化四、总线的操作接口&#xff08;4-1&#xff09;总线的注册&#xff08;4-2&#xff09;总线的注销&#xff08;4-3&am…

Linux的基本使用在Linux上部署程序

linux概述 Linux严格意义来说只是一个"操作系统内核"&#xff0c;一个完整的操作系统 操作系统内核 配套的应用程序 由于 Linux 是一个完全开源免费的内核&#xff0c;因此有些公司/开源组织又基于 Linux 内核&#xff0c;提供了不同的配套程序&#xff0c;这就构…

GAN“家族”又添新成员——EditGAN,不但能自己修图,还修得比你我都好

导语&#xff1a;从风格迁移到特征解耦、语言概念解耦&#xff0c;研究人员正通过数学和语言逐步改善GAN的功能。作者 | 莓酊编辑 | 青暮首先想让大家猜一猜&#xff0c;这四张图中你觉得哪张是P过的&#xff1f;小编先留个悬念不公布答案&#xff0c;请继续往下看。生成对抗网…