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

Swing程序设计(3)JDialog窗体

文章目录

  • 前言
  • 一、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窗体的使用的介绍。技术内容可能有所过时,适合在校新生学习,欢迎补充指正,博主会及时进行反馈。

相关文章:

Swing程序设计(3)JDialog窗体

文章目录 前言一、JDialog窗体的介绍二、JDialog窗体的使用 1.JDialog的常用构造方法2.实例展示及分析总结 前言 JDialog窗体是窗体中的另一种类型的窗体,指对话框窗体。与JFrame窗体类似,绝大部分对于JFrame窗体使用的方法,对于JDialog窗体也…...

类和对象(1)

文章目录 1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符和封装4.1访问限定符4.2封装 5.类的作用域6.类的实例化6.2结构体内存对齐规则 7.this指针7.2this指针的特性 封装(补充) 1.面向过程和面向对象初步认识 C面向对象但不纯面向…...

学会用命令行创建uni-app项目并用vscode开放项目

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 创建 uni-app 项目 命令行创建 uni-app 项目 编译和运行 uni-app 项目: 用 VS Code 开发 uni…...

java.lang.ClassCastException: android.os.BinderProxy cannot be cast to ...

项目开发遇到下面这个报错了! 问题原因 直接说原因,就是因为进程间不能直接传递对象,应该传递该Binder对象的映射(代理对象),所以类型转换就出错了。如果在同一个进程中,直接传递对象没有关系&a…...

AIGC(生成式AI)试用 3 -- 专业主题

何为专业? 主要研究某种学业或从事某种事业 我的理解可能是在某个方向、某个行业,专业的更靠谱、说了更算、表达的更晰,结果更有说服力 本次提问:你我的专业 生成式AI知道你我的专业吗?生成式AI如何诠释你…...

rsyslog-日志管理 logrotate-日志轮转

日志的管理的方式,以及怎么自己写一个管理日志的小脚本,其实也不能算脚本 管理日志的进程 rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron… httpd/nginx/mysql: …...

类和对象续

目录 包 自定义包 包的访问权限控制 常见的包 Static成员 静态成员变量 静态成员方法 代码块 构造块 静态块 重写 继承 继承是啥? 父类成员访问 子类中访问父类成员变量 两者不同名 两者同名 子类中访问父类对的成员方法 super 子类构造方法 …...

SpringCloud:Feign实现微服务之间相互请求

文章目录 🎉欢迎来到Java学习路线专栏~SpringCloud:Feign实现微服务之间相互请求 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客🎈该系列文章专栏:Java学习路线📜其他专栏&#xf…...

LeetCode 1359. Count All Valid Pickup and Delivery Options【动态规划,组合数学】1722

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

[杂谈]-从硬件角度理解二进制数

从硬件角度理解二进制数 文章目录 从硬件角度理解二进制数1、概述2、模拟电路3、数字电路4、逻辑电平5、TTL 器件的电压水平6、总结 1、概述 二进制数以 2 为基数系统表示,该系统只有两 (2) 个不同的数值,即 0 和 1。就像最常见的那样,十进制…...

Fast-DDS 服务发现简要概述

阅读本文章需要对DDS基础概念有一些了解,一些内容来自Fast-DDS官方文档,一些是工作中踩过的坑。 1. 服务发现阶段 满足OMG标准的DDS服务发现分为两部分,分别是: PDP(Participant Discovery Protocol 参与者发现协议):参与者确认…...

基于spingboot的websocket订阅、广播、多人聊天室示例

概述 基于spingboot的websocket多人聊天系统。包括订阅,广播、点对点单人聊天,多人聊天室功能。 详细 一、运行效果 简单示例 广播 单人聊天 多人聊天室 二、相关代码 websocket配置 package com.iamgpj.demowebsocket.config;import com.iamgpj.d…...

Linux mac Windows三系统 局域网文件共享方法

主要工具: Samba是一个开源的软件套件,允许Linux系统与Windows系统之间共享文件和打印机。 一、首先是Linux共享的设置 ①安装 sudo apt-get install samba ②创建共享文件夹 sudo mkdir /home/share ③配置用户 sudo smbpasswd -a kequan ④修改…...

Java——比较器

引入的背景 我们知道基本数据类型的数据(除boolean类型外)需要比较大小的话,直接使用比较运算符即可,但是引用数据类型是不能直接使用比较运算符来比较大小的。那么,如何解决这个问题呢? 在Java中经常会涉…...

【数据结构】初识泛型

文章目录 一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。这种限制对代码的束缚就会很大。所以我们引入了泛型。泛型,泛顾名思义就是广泛的意思。就是适用于许多许多类型。从代码上讲,就是对类型实现了参数…...

代码随想录--哈希--有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s "anagram", t "nagaram" 输出: true 示例 2: 输入: s "rat", t "car" 输出: false 说明: 你可以假设字符串只包含小写字母。…...

MySQL——数据的增删改

2023.9.12 本章开始学习DML (数据操纵语言) 语言。相关学习笔记如下: #DML语言 /* 数据操作语言: 插入:insert 修改:update 删除:delete */#一、插入语句 #方式一:经典的插入 /* 语法: insert …...

云服务器与http服务器

如何与http服务器建立连接(客户端)? http请求设计格式: 例子: 发送http请求 http数据响应格式: 接收http服务器返回的数据需要进一步进行字符串处理操作,提取有用的数据。...

golang教程 beego框架笔记一

安装beego 安装bee工具 beego文档 # windos 推荐使用 go install github.com/beego/bee/v2master go get -u github.com/beego/bee/v2masterwindows使用安装bee工具时碰到的问题; 环境配置都没有问题,但是执行官网的命令:go get -u github…...

【深度学习】Mini-Batch梯度下降法

Mini-Batch梯度下降法 在开始Mini-Batch算法开始之前,请确保你已经掌握梯度下降的最优化算法。 在训练神经网络时,使用向量化是加速训练速度的一个重要手段,它可以避免使用显式的for循环,并且调用经过大量优化的矩阵计算函数库。…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

管理学院权限管理系统开发总结

文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

GitHub 趋势日报 (2025年06月06日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...