Swing程序设计(3)JDialog窗体

news2024/11/26 17:39:30

文章目录

  • 前言
  • 一、JDialog窗体的介绍
  • 二、JDialog窗体的使用
    • 1.JDialog的常用构造方法
    • 2.实例展示及分析
  • 总结

前言

        JDialog窗体是窗体中的另一种类型的窗体,指对话框窗体。与JFrame窗体类似,绝大部分对于JFrame窗体使用的方法,对于JDialog窗体也同样适用。


一、JDialog窗体的介绍

        JDialog窗体是Swing组件中的对话框组件,继承了AWT组件中的java.awt.Dialog类。JDialog窗体实质上就是另一种类型的窗体。在使用的同时也需要调用 getContentPane() 方法将窗体转换为容器,然后在容器中设置窗体的特性。

二、JDialog窗体的使用

1.JDialog的常用构造方法

        JDialog类的几种常用的构造方法(方法名是可变的):

                (1)public JDialog():创建了一个没有标题和父窗体的对话框

                (2)public JDialog(Frame f):创建了一个有指定父窗体对象的对话框,没有给父窗体标题

                (3)public JDialog(Frame f, Boolean model):创建了一个指定类型的对话框,并指定了父窗体,没有给父窗体标题

                (4)public JDialog(Frame f,String title):创建了一个指定父窗体和父窗体标题的对话框

                (5)public JDialog(Frame f,String title,boolean modle):创建了一个指定了父窗体,父窗体标题和对话框模式的对话框。

                实例展示(展示的是最全的第五个,以上方法使用方式一致,引用参数不同):

import javax.swing.*;
import java.awt.*;

public class JDialogDemo2{
    public JDialogDemo2(Frame f, String title, boolean modle) {
        //创建一个新的特定的对话框窗体,可指定了窗体对象,标题,和模式
        JDialog dialog = new JDialog(f, title, modle);
        
        //设定对话框窗体的大小
        dialog.setSize(300, 200);
        
        //设定对话框窗体的关闭方式
        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

        //设定该窗体可见
        dialog.setVisible(true);
    }
    
    public static void main(String[] args) {
        //创建一个JFrame对象,在实例化JDialogDemo2对象时调用。
        JFrame frame = new JFrame("Main Frame");
        frame.setSize(400, 300);
      
        //创建一个JDialogDemo2的对象,直接调用JDialogDemo2的构造方法,定义了窗体对象,标题,和模式
        JDialogDemo2 dialogDemo = new JDialogDemo2(frame, "Dialog Title", true);
    }
    
}

                 相关解释:

                        1.创建一个JDialogDemo2的构造方法,其中括号中的内容:第一个值为创建的JFrame对象,第二个值为对话框窗体的标题,第三个为对话框窗体的模式(该参数为布尔值,确定是否为模态)。

注:模态对话框是一种特殊类型的窗口,它阻止用户与应用程序中的其他窗口进行交互,直到该对话框被关闭。这意味着在模态对话框打开期间,用户无法将焦点切换到其他窗口或执行其他操作。只有当模态对话框关闭后,用户才能继续与应用程序进行交互。

                        2.setSize()方法:设置组件的高。

setSize(250,100);
//宽250像素,高100像素

                        结果展示: 

         

                        3.创建一个main静态方法:

                                (1)创建一个JFrame对象,方便在实例化JDialogDemo2有使用的JFrame对象使用。

                                (2)创建一个JDialogDemo2的对象,直接调用JDialogDemo2的构造方法,定义了窗体对象,标题,和模式。                                      

2.实例展示及分析

        (1)实例介绍:窗体有按钮可以弹出对话框,并且不处理该对话框,无法进行其他操作。

        (2)代码展示: 

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JDialogDemo extends JDialog{
    public JDialogDemo(JFrame frame){
        /*
         * 第一个参数,父窗体对象
         * 第二个参数,对话框标题
         * 弟三个参数,是否阻塞父窗体
         */
        super(frame, "对话框标题", true);
        //对话框阻塞父窗体

        Container c = getContentPane();
        c.add(new JLabel("这是一个对话框"));
        setBounds(100, 100, 100, 100);  //设置窗体坐标和大小
    }

    public static void main(String[] args) {

        JFrame frame = new JFrame("父窗体");
        frame.setBounds(50, 50, 300, 300);
        Container c = frame.getContentPane();
        JButton btn = new JButton("弹出对话框");
        c.setLayout(new FlowLayout());  //设置布局,使用流布局
        c.add(btn);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);

        btn.addActionListener(new ActionListener() {
            
                public void actionPerformed(ActionEvent e){
                        JDialogDemo d = new JDialogDemo(frame);
                        d.setVisible(true);
                        //对话框窗体可见,最好在静态方法中使用(涉及到java语言的底层逻辑)
                }
        });//添加动作监听
    }
}

        (3)补充解释:

                super关键字调用:调用了JDialog类的构造方法,即 public JDialog(Frame f,String title,boolean modle)

                流布局:流布局(Flow Layout)是一种在图形用户界面(GUI)中常用的布局管理器。它按照组件的添加顺序,从左到右依次排列,并在水平方向上自动换行。        

运行结果:

                                                    

             点击按钮 

                                 

              由于设置为模态对话框,关闭对话框后,才能对父窗体进行操作。


总结

        以上就是对java语言中Swing程序设计中JDialog窗体的使用的介绍。技术内容可能有所过时,适合在校新生学习,欢迎补充指正,博主会及时进行反馈。

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

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

相关文章

多元共进|整合开发者社区资源,共建繁荣生态

谷歌致力于构建多元社区 促进行业内更多交流和联系 一起来了解 2023 Google 开发者大会上 谷歌如何以点及面 将资源辐射至开发者、数字人才和初创企业 持续赋能开发者社区生态 谷歌全球开发者社区计划的目的是与开发者同在,实现双向对话、互动和参与&#xff0…

Houdini19 命令行启动环境配置

在自动化流程中,通常都是从外部命令行启动 Houdini,而不是在软件里进行烘培和输出。完全体是通过类似 Jenkins 等自动化工具来启动 Houdini 自动生成流程。 我使用的 Houdini 版本为 19.5.640,对应的 Python 版本为 3.9 。 1、配置开发环境 …

Gitlab仓库部署

Gitlab仓库部署 一、Gitlab的概述1、gitlab介绍2、gitlab主要功能3、gitlab和github的区别 二、部署环境1、安装依赖环境2、安装Postfix邮箱3、Gitlab优势4、Gitlab工作流程 三、Gitlab部署过程1、Yum安装Gitlab2、配置gitlab站点URL3、启动并访问Gitlab 四、Gitlab具体操作1、…

挖到宝了!这个中文版SiteGPT竟然有那么多好处

如今数字时代蓬勃发展,信息非常丰富,但个性化互动和量身定制的反馈却相对匮乏。个性化AI工具的出现可以说是打破了窘境。随着人工智能(AI)技术的快速发展,定制AI问答机器人成为了越来越多企业和组织的热门选择。这些智…

Zabbix监控部署项目

为什么选择Zabbix Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 面试常问 你用过哪些监控软件 zabbix …

linux的应用线程同步与驱动同步机制

同步机制 在 Linux 应用程序和内核中的驱动程序中,有一些常见的同步机制用于实现线程或进程之间的同步和数据访问保护。下面是它们的一些主要机制: Linux 应用程序中的同步机制: 互斥锁(Mutex):用于保护共…

233062C++QTday5

实现一个图形类(Shape),包含受保护成员属性:周长、面积, 公共成员函数:特殊成员函数书写 定义一个圆形类(Circle),继承自图形类,包含私有属性:半…

【ArcGIS Pro二次开发】(67):处理面要素空洞

这个一个简单的小功能。 有些面要素可能会存在空洞,这个工具的目的就是获取面要素的空洞,或者去除空洞获取要素的边界。 这个功能其实在之前做拓扑功能的时候就已经有了,这次只是单独把它提取出来。因为有时候会单独用到这个功能。 一、要实…

圆形旋转特效原理及pygame实现

具体效果: 视频教程链接: https://www.bilibili.com/video/BV1ou411F7a2/ 介绍 本文介绍了如何实现一个围绕鼠标旋转的文字效果如何实现,有什么用途,以及pygame的代码实现。 实现代码: import pygame import math…

初识Java 8-1 接口和抽象类

目录 抽象类和抽象方法 接口定义 默认方法 多重继承 接口中的静态方法 作为接口的Instrument 本笔记参考自: 《On Java 中文版》 接口和抽象类提供了一种更加结构化的方式分离接口和实现。 抽象类和抽象方法 抽象类,其介于普通类和接口之间。在构…

华为云云耀云服务器L实例评测|华为云云耀云服务器L实例使用教学+宝塔建站 — 运行Python脚本(保姆级)

目录 文章目录 目录前言一、创建云耀云服务器L实例1、打开购买页面2、找到系统镜像3、进入系统控制台4、重置服务器密码 二、安装宝塔面板1.打开在线安装工具2.复制公网IP3.完成在线安装4.安装完成(记住账密信息)五.开放安全组 三、使用服务器总结 前言 …

Linux系统编程(一):文件 I/O

参考引用 UNIX 环境高级编程 (第3版)黑马程序员-Linux 系统编程 1. UNIX 基础知识 1.1 UNIX 体系结构(下图所示) 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境,通常…

4.linux的RPM和YUM

一、RPM 1.rpm包的管理 1.1介绍 Linux互联网下载包,类似于windows的setup.exe 1.2rpm简单查询已安装的rpm rpm -qa | grep xxx 当前linux有没有安装火狐 rpm -qa | grep fox 1.3rpm包的格式 一个 rpm 包名:firefox-45.0.1-1.el6.centos.x86_64.…

学习记忆——方法篇——连锁拍照、情景故事和逻辑故事法

三大方法速记这些内容 1、连锁拍照法速记重要事件 2、情景故事速记速记购物信息 3、逻辑故事法速记客户档案 一、连锁拍照法速记重要事件 例:女朋友在出差之前嘱咐男朋友几件事 1、把房间收拾干净,最重要的是要把书架整理了,垃圾倒了 2、记…

软件设计师_计算机组成与体系结构

计算机组成与体系结构 文章目录 1.1 数据的表示1.1.1 进制的转换1.1.2 原码 反码 补码 移码1.1.3 浮点数运算 1.2 计算机结构1.3 Flynn分类法1.4 CISC和RISC1.5 流水线技术1.6 存储系统1.7 总线系统1.8 可靠性1.9 校验码 1.1 数据的表示 1.1.1 进制的转换 R进制转十进制 --&g…

Linux:keepalived + ipvsadm

介绍 Linux:keepalived 双热备份(基础备份web)_鲍海超-GNUBHCkalitarro的博客-CSDN博客https://blog.csdn.net/w14768855/article/details/132815057?spm1001.2014.3001.5501 环境 一台 centos7 keepalived ipvsadm (主…

技术架构图是什么?和业务架构图的区别是什么?

技术架构图是什么? ​技术架构图是一种图形化工具,用于呈现软件、系统或应用程序的技术层面设计和结构。它展示了系统的各种技术组件、模块、服务以及它们之间的关系和交互方式。技术架构图关注系统内部的技术实现细节,以及各个技术组件之…

SpringBoot项目--电脑商城【显示勾选的购物车数据】

1.持久层[Mapper] 1.规划SQL语句 用户在购物车列表页中通过随机勾选相关的商品,在点击“结算”按钮后,跳转到结算页面,在这个页面中需要展示用户在上个页面所勾选的购物车对应的数据,列表的展示,而展示的内容还是在于…

OpenCV学习笔记(6)_由例程学习高斯图像金字塔和拉普拉斯金字塔

1 图像金字塔 图像金字塔是图像多尺度表达的一种。 尺度,顾名思义,可以理解为图像的尺寸和分辨率。处理图像时,经常对源图像的尺寸进行缩放变换,进而变换为适合我们后续处理的大小的目标图像。这个对尺寸进行放大缩小的变换过程…

Python的get请求报错Error: Unexpected status code 400

一句话导读: 最近在做研发效能提升的事情,其中有一块就是要对项目管理相关数据做统计,我们使用的是ones做的项目管理,ones本身带的那些报表满足不了我们的需求,就想着看这些数据是不是能自己拿出来做统计,有…