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

JavaSwing之-JDialog

JavaSwing之-JDialog

JDialog 是 Java Swing 中用于创建对话框窗口的容器类,继承自 Dialog 类(AWT),常用于显示临时信息、获取用户输入或执行模态操作。它是 javax.swing.JDialog 包中的类。
与 JFrame 不同的是,JDialog 通常依附于一个主窗口(如 JFrame),并可以在需要时弹出,完成交互后关闭。

一、构造方法

JFDialog提供了多个构造方法满足编程爱好者的不同需求,其常见的构造方法如下表所示。

方法名称功能描述
JDialog()创建一个非模态对话框,无依赖、无标题
JDialog(JFrame owner)创建一个非模态对话框,指定拥有它的 JFrame。
JDialog(JFrame owner, String title)创建带标题的非模态对话框。
JDialog(JFrame owner, String title, boolean modal)创建指定模态类型的对话框。

构造方法中如果如果设置模态参数,true表示模态对话框,false表示非模态对话框。如果不设置该参数,默认为非模态对话框。

JFrame frame = new JFrame("对话框应用")
JDialog  dialog1 = new JDialog();//无标题、无依赖、非模态对话框
JDialog  dialog2 = new JDialog(frame,"我的对话框-非模态");//有标题、有依赖、非模态对话框
JDialog  dialog3 = new JDialog(frame,"我的对话框-模态",true);//有标题、有依赖、模态对话框
JDialog  dialog4 = new JDialog(frame,"我的对话框-非模态",false);//有标题、有依赖、非模态对话框

对话框与依赖组件(主窗口)之间有模态和非模态两种表现形式,它们的区别如下表所示。

模态与非模态区别

类型描述使用场景
模态(true)弹出后,用户不能操作主窗口,直到关闭该对话框登录、确认操作、错误提示等
非模态(false)弹出后,仍可以操作主窗口工具面板、日历选择器等辅助功能
二、常用方法
方法名称功能描述
setTitle(String title)设置对话框标题
setSize(int width, int height)设置对话框大小
setLocationRelativeTo(Component c)相对于某个组件居中显示
setModal(boolean b)设置是否为模态对话框
setVisible(boolean b)显示或隐藏对话框
dispose()销毁对话框资源
setUndecorated(boolean b)是否隐藏标题栏和边框(必须在 setVisible 之前调用)
  • setTitle(String title)方法可以设置对话框的标题,已构建对话框可以通过该方法添加或更新标题。
dialog1.setTitle("字体设置对话框");
  • setSize(int width,int height)设置对话框的初始大小,也可以用Dimension对象作为参数。
//基于当前屏幕分辨率设置对话框尺寸
//获取当前屏幕分辨率封装到Dimension对象中
Dimension   screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//确定对话框的宽、高值
int width = screenSize.width/2;
int height = screenSize.height/2; 
//创建对话框对象
JDialog dialog = new JDialog("对话框");
//设置初始值大小
dialog.setSize(width,height);//dialog.setSize(new Dimension(width,height));
  • setLocationRelativeTo(Component c)设置对话框相对于组件c居中显示,其中c表示组件对象。
//创建一个窗口对象
JFrame frame = new JFrame("窗口");
frame.setSize(600,400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建一个对话框对象
JDialog  dialog = new JDialog();//无标题、无依赖、非模态对话框
dialog.setSize(400,300);
dialog.setTitle("字体设置对话框");
dialog.setLocationRelativeTo(frame);//相对窗口居中显示

以上程序结果显示如下。

在这里插入图片描述

  • setModal(boolean b)设置是否为模态对话框。使用该方法可设置或修改对话框的模式
JDialog  dialog = new JDialog(frame,"我是非模态对话框");//有标题、有依赖、非模态对话框
dialog.setModal(true);//设置为模态对话框
  • setUndecorated(boolean b),设置 是否隐藏标题栏和边框,该方法必须在 setVisible 之前调用。当参数为true时隐藏标题栏和边框。

对话框还有许多方法可以被调用完成更加强大的功能,请参考JDK说明文档。

关于更多的综合应用,待学习过常用组件后在综合案例中讲解演示。

三、总结

JDialog 适合用于短期交互任务。根据功能需求选择模态或非模态对话框,最大化体现程序的友好性。

对话框在关闭后应调用 dispose() 释放资源。

如果基于对话框构建功能丰富的 UI,待学习其他容器组件和布局管理器后可实现。

相关文章:

JavaSwing之-JDialog

JavaSwing之-JDialog JDialog 是 Java Swing 中用于创建对话框窗口的容器类,继承自 Dialog 类(AWT),常用于显示临时信息、获取用户输入或执行模态操作。它是 javax.swing.JDialog 包中的类。 与 JFrame 不同的是,JDia…...

【学习路线】 游戏客户端开发入门到进阶

目录 游戏客户端开发入门到进阶:系统学习路线与推荐书单一、学习总原则:从底层出发,项目驱动,持续迭代二、推荐学习路线图(初学者→进阶)第一阶段:语言基础与编程思维第二阶段:游戏开…...

部署安装gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm

目录 ​编辑 实验环境 所需软件 实验开始 安装部署gitlab171.配置清华源仓库(版本高的系统无需做)vim /etc/yum.repos.d/gitlab-ce.repo 2.提前下载包dnf localinstall gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm --rocklinux 3.修改配…...

备战菊厂笔试2-BFS记忆化MLE?用Set去重-Set会TLE?用SortedSet剪枝

目录 200.岛屿数量 不用getnei,直接在dfs判断,去掉解包 如果害怕栈溢出那么可以用bfs 2617.网格图中最少访问的格子数 注意特判! MLE主要是因为vis占用的内存过大 用SortedSet有序剪枝 什么是SortedSet? 基本性质 导入 …...

主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少?

📘题干回顾: 主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少? 这个问题关键在于“TCP序号不重复使用”。 ✅ 正确答案是:D.…...

【RabbitMQ】发布确认机制的具体实现

文章目录 模式介绍建立连接单独确认代码实现逻辑运行结果 批量确认代码实现逻辑运行结果 异步确认实现逻辑介绍代码实现逻辑运行结果 三种策略对比以及完整代码 模式介绍 作为消息中间件,都会面临消息丢失的问题,消息丢失大概分为三种情况: …...

React状态管理-对state进行保留和重置

相同位置的相同组件会使得 state 被保留下来 当你勾选或清空复选框的时候&#xff0c;计数器 state 并没有被重置。不管 isFancy 是 true 还是 false&#xff0c;根组件 App 返回的 div 的第一个子组件都是 <Counter />&#xff1a; 你可能以为当你勾选复选框的时候 st…...

vue和springboot交互数据,使用axios【跨域问题】

vue和springboot交互数据&#xff0c;使用axios【跨域问题】 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是node.js和vue的使用。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性。【帮帮志系列文章】&…...

AJAX 使用 和 HTTP

ajax学习 promise和 awit Node.js 和 webpack 前端工程化 Git工具 AJAX异步的JS和XML&#xff1a; 使用XML对象和服务器通信 在这里插入图片描述 统一资源定位符 URL HTTP 超文本传输协议 域名 资源路径 资源目录和类型 URL 查询参数 使用&#xff1f;表示之后的参数…...

MySQL之基础事务

目录 引言&#xff1a; 什么是事务&#xff1f; 事务和锁 mysql数据库控制台事务的几个重要操作指令&#xff08;transaction.sql&#xff09; 1、事物操作示意图&#xff1a; 2.事务的隔离级别 四种隔离级别&#xff1a; 总结一下隔离指令 1. 查看当前隔离级别​​ …...

uniapp设置 overflow:auto;右边不显示滚动条的问题

设置了overflow&#xff1a;auto;或者其它overflow的属性不显示滚动条是因为在uniapp中默认隐藏了滚动条 解决方法&#xff1a; //强制显示滚动条 ::-webkit-scrollbar {width: 8px !important;background: #ccc !important;display: block !important;}//设置滚动条颜色.cu-…...

数据库基础复习笔记

数据库 相关概念 名称全称检查数据库存储数据的仓库&#xff0c;数据是有组织的进行存储DataBase&#xff08;DB&#xff09;数据库管理系统操作和管理数据库的大型软件DataBase Management System(DBMS)SQL操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库…...

MySQL基础关键_013_常用 DBA 命令

目 录 一、MySQL 用户信息存储位置 二、新建用户 1.创建本地用户 2.创建外网用户 三、用户授权 1.说明 2.实例 四、撤销授权 五、修改用户密码 六、修改用户名、主机名/IP地址 七、删除用户 八、数据备份 1.导出数据 2.导入数据 &#xff08;1&#xff09;方式…...

爬虫请求频率应控制在多少合适?

爬虫请求频率的控制是一个非常重要的问题&#xff0c;它不仅关系到爬虫的效率&#xff0c;还涉及到对目标网站服务器的影响以及避免被封禁的风险。合理的请求频率需要根据多个因素来综合考虑&#xff0c;以下是一些具体的指导原则和建议&#xff1a; 一、目标网站的政策 查看网…...

探秘网络邮差:FTP、Telnet、SMTP、NFS、SNMP介绍

引言&#xff1a;谁是网络世界的“邮差”&#xff1f; 想象一下&#xff0c;你正在网上冲浪——发送一封邮件、上传一份文件、远程登录服务器&#xff0c;甚至只是打开一个网页。这些看似简单的操作背后&#xff0c;其实有一群默默无闻的“邮差”在辛勤工作。它们就是应用层协…...

java基础:异常体系

目录 一、java异常体系介绍二、异常1、运行时异常2、非运行时异常 三、错误四、异常的处理方式1、方式1&#xff1a;throws声明抛出异常1.1、throws关键字1.2、throw关键字 2、方式2&#xff1a;try-catch-finally 一、java异常体系介绍 异常体系图如下&#xff1a; Throwable…...

CSS Grid布局:从入门到实战

CSS Grid布局&#xff1a;从入门到实战 一、初识Grid布局 还在为网页布局发愁吗&#xff1f;Flexbox虽然好用&#xff0c;但当遇到复杂布局时&#xff0c;CSS Grid才是真正的王者。Grid布局是CSS中最强大的二维布局系统&#xff0c;它就像一张无形的网格纸&#xff0c;让我们…...

记录算法笔记(20025.5.14)对称二叉树

给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 提示&#xff1a; 树中节点数目…...

QT Creator配置Kit

0、背景&#xff1a;qt5.12.12vs2022 记得先增加vs2017编译器 一、症状&#xff1a; 你是否有以下症状&#xff1f; 1、用qt新建的工程&#xff0c;用qmake&#xff0c;可惜能看见的只有一个pro文件&#xff1f; 2、安装QT Creator后&#xff0c;使用MSVC编译显示no c com…...

JVM 与云原生的完美融合:引领技术潮流

最近佳作推荐&#xff1a; Java 大厂面试题 – 揭秘 JVM 底层原理&#xff1a;那些令人疯狂的技术真相&#xff08;New&#xff09; Java 大厂面试题 – JVM 性能优化终极指南&#xff1a;从入门到精通的技术盛宴&#xff08;New&#xff09; Java 大厂面试题 – JVM 深度剖析&…...

Ubuntu24.04编译ORB_SLAM的一系列报错解决

Ubuntu24.04编译ORB_SLAM的一系列报错解决 decay_t报错 报错信息&#xff1a;error: ‘decay_t’ is not a member of ‘std’&#xff1b;did you mean ‘decay’ 将CMakeLists.txt中第17行的c标准修改为c14即可&#xff1a; 修改前&#xff1a; CHECK_CXX_COMPILER_FLAG…...

为何大模型都使用decoder-only?

第一章 架构之争的历史脉络 1.1 从双向到单向的革命 2017年&#xff0c;BERT的横空出世让双向注意力机制成为NLP领域的“武林盟主”。通过Masked Language Modeling&#xff08;MLM&#xff09;&#xff0c;BERT在阅读理解、情感分析等任务中展现出惊人的表现&#xff0c;但它…...

《Effective Python》第2章 字符串和切片操作——Python 字符串格式化的现代选择f-strings

引言 本篇博客基于学习《Effective Python》第三版 Chapter 2: Strings and Slicing 的 Item 11 “Prefer Interpolated F-Strings Over C-style Format Strings and str.format” 的总结与延伸。 字符串格式化是 Python 编程中的常见操作&#xff0c;用于动态生成可读性高的…...

企业报表平台如何实现降本增效

一、你的企业是否正被这些问题拖累&#xff1f;‌ 财务还在手动汇总各门店的Excel销售数据&#xff1b;市场部总抱怨“客户分析全靠拍脑袋”&#xff1b;仓库突然发现爆款断货&#xff0c;但上周的报表显示库存充足…… 这些场景你是否熟悉&#xff1f;数据散落在ERP、E…...

Ollama+OpenWebUI+docker完整版部署,附带软件下载链接,配置+中文汉化+docker源,适合内网部署,可以局域网使用

前言&#xff1a; 因为想到有些环境可能没法使用外网的大模型&#xff0c;所以可能需要内网部署&#xff0c;看了一下ollama适合小型的部署&#xff0c;所以就尝试了一下&#xff0c;觉得docker稍微简单一点&#xff0c;就做这个教程的&#xff0c;本文中重要的内容都会给下载…...

git push 报错:send-pack: unexpected disconnect while reading sideband packet

背景 新建了一个仓库&#xff0c;第一次push 代码文件&#xff0c;文件中有一个依赖的jar&#xff0c;有80MB&#xff0c;结果push的时候报错。 错误信息 error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500 send-pack: unexpected disconnect whi…...

考研英一真题学习笔记 2018年

2018 年全国硕士研究生招生考试 英语 &#xff08;科目代码&#xff1a;201&#xff09; Section Ⅰ Use of English Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) Trust i…...

ultralytics中tasks.py---parse_model函数解析

一、根据scale获取对应的深度、宽度和最大通道数 具体例如yaml文件内容如下: depth=0.33,那么重复的模块例如C2f原本重复次数是3,6,6,3,那么T对应的模型重复次数就是三分之一即1,1,2,1次。这个在后面定义的: width=0.25,max_channels=1024 原本c2=64,但经过make_div…...

Java知识框架

一、Java 基础语法 1. 基础语法 数据类型 基本类型&#xff1a;int, double, boolean, char 等 引用类型&#xff1a;String, 数组, 对象 变量与常量 final 关键字 作用域&#xff08;局部变量、成员变量&#xff09; 运算符 算术、逻辑、位运算 三元运算符 ? : 控制…...

2024年业绩增速大幅回退,泸州老窖未能“重回前三”

撰稿|行星 来源|贝多财经 回望过去的2024年&#xff0c;受制于购买力与消费需求的持续疲软&#xff0c;白酒行业的发展面临诸多复杂性与不确定性&#xff0c;“量价齐跌”犹如笼罩在各大企业头顶的一片阴云。 正如巴菲特所言&#xff1a;“当潮水退去时&#xff0c;才知道谁在…...