Java swing——创建对话框JDialog

之前我们讲了怎么建立一个简易的窗口,链接:http://t.csdnimg.cn/l7QSs,接下来继续讲解窗口的进阶。


对话框

上一篇文章中我们讲到了JFrame是一种顶层容器,本文接下来介绍其余的顶层容器。

  • 跟JFrame一样,,这几个顶层容器都是抽象类。

  • 以下是这几个顶层容器的构造方法:

    • JFrame:

      JFrame() // 创建一个无标题的窗口
      JFrame(String title) // 创建一个指定标题的窗口

    • JApplet:

      JApplet() // 创建一个新的JApplet

    • JDialog:

      JDialog() // 创建一个无标题的对话框
      JDialog(Frame owner) // 创建一个指定所有者的对话框
      JDialog(Dialog owner) // 创建一个指定所有者的对话框
      JDialog(Frame owner, String title) // 创建一个指定所有者和标题的对话框
      JDialog(Dialog owner, String title) // 创建一个指定所有者和标题的对话框

    • JWindow:

      JWindow() // 创建一个无标题的窗口

  • 并且JFrame的各种设置方法大部分都适用于这几个顶层容器。

需要注意的是JDialog是一种特殊的容器,它可以被JFrame容纳,其余的顶层容器是无法互相容纳的。
根据它们的构造方法,我们可以根据上一文中jFrame的构造方法,照葫芦画瓢写出各自的代码。

直接构造JDialog

import javax.swing.*;
import java.awt.*;public class test {public static void main(String[] args) {JDialog jDialog = new JDialog();   //创建JDialog对象jDialog.setTitle("JDialog");      //设定标题jDialog.setBounds(300,300,500,500); //设定位置和大小jDialog.setVisible(true);   //设置可见性jDialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
//退出方式JLabel label = new JLabel("This is a JDialog");  //创建一个JLabel标签label.setHorizontalAlignment(SwingConstants.CENTER);  //设定位置居中label.setVisible(true);   //设置可见性jDialog.add(label);  //将其添加到对话框中}
}

在这里插入图片描述

创建属于窗口JFrame的对话框JDialog

下面是一个带有对话框的窗口代码:

import javax.swing.*;
import java.awt.*;class jDialog extends JDialog {public jDialog (Frame frame, String title, int x, int y, int width, int height) {super(frame, title);setBounds(x,y,width,height);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}
}
class jFrame extends JFrame {public jFrame (String title, int x, int y, int width, int height) {super(title);                     //调用父类构造方法设置标题setBounds(x, y, width, height);   //一步到位把位置和大小设置好setVisible(true);                 //设置窗口可见性setDefaultCloseOperation(EXIT_ON_CLOSE);  //设置关闭方式JLabel jLabel = new JLabel("这是一个带有标题的窗口");//这是一个标签组件jLabel.setHorizontalAlignment(SwingConstants.CENTER); //设置文本位置add(jLabel);                       //调用add函数将标签组件添加到抽口当中jDialog jDialog1 = new jDialog(this,"jDialog",x+20,y+20,width,height);//这里直接将对话框添加到窗口中了,不用再调用add函数}
}
public class test {public static void main(String[] args) {jFrame frame = new jFrame("frame",100,100,500,500);}
}

在这里插入图片描述
注意:由于jDialog是被jFrame容纳的,因此关闭jFrame时也会同时退出JDialog。

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

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

相关文章

C/C++ 回调函数 callback 异步编程

一、C语言的回调函数 1.小试牛刀 #include <iostream> using namespace std; #include <memory> #include <stdlib.h>int add(int a, int b) {return a b; }void test01() {// 函数指针可以指向任何类型的函数&#xff0c;只要函数的参数列表和返回值类型…

如何结合ChatGPT生成个人魔法咒语词库

3.6.1 ChatGPT辅助力AI绘画 3.6.1.1 给定主题让ChatGPT直接描述 上面给了一个简易主题演示一下&#xff0c;这是完全我没有细化的提问&#xff0c;然后把直接把这些关键词组合在一起。 关键词&#xff1a; 黄山的美景&#xff0c;生机勃勃&#xff0c;湛蓝天空&#xff0c;青…

厕所革命与可持续发展的“九牧方案”

人类文明的历史&#xff0c;就是厕所的革命史&#xff0c;小小的厕所里&#xff0c;承载着大故事。 2015 年&#xff0c;印度一个名叫娜尔的女孩&#xff0c;因为丈夫不愿意在家盖厕所&#xff0c;向法庭提出了离婚申请&#xff0c;由此引发了全印度“无厕所&#xff0c;无新娘…

从零开始 TensorRT(2)Python 篇:原生 API 构建网络

前言 学习资料&#xff1a; TensorRT 源码示例 官方文档&#xff1a;Working With TensorRT Using The Python API 官方文档&#xff1a;TensorRT Python API 官方文档&#xff1a;CUDA Python B站视频&#xff1a;TensorRT 教程 | 基于 8.6.1 版本 B站视频配套代码 cookbook …

OSG帧渲染,如何实现自定义动画效果

看到这个标题,老司机可能会想到OSG动画相关的内容,比如osg::AnimationPath类和osg::AnimationPathCallback类,这些动画类,可以实现按照一定的插值方式,生成路径,物体对象按照生成的路径或者预先指定的路径来完成相应的动作的动画。 路径动画有三种动画模式,分别为单摆环…

幻兽帕鲁服务器游戏版本怎么升级更新?

哈喽大家好&#xff0c;我是咕噜美乐蒂&#xff0c;很高兴又见面啦&#xff01; 幻兽帕鲁&#xff08;Monster Hunter: World&#xff09;是一款热门的多人在线游戏&#xff0c;玩家可以在服务器上与其他玩家一起探险、狩猎怪物。为了保持游戏的平衡性和提供更好的游戏体验&am…

【百度Apollo】探索创新之路:深入了解Apollo开放平台

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…

docker部署RedisCluster集群简单介绍

本文介绍自己建立一个redis-cluster集群的实践&#xff0c;三主三从&#xff0c;使用docker搭建。 其实搭建很简单&#xff0c;就是建立6个容器&#xff0c;每个容器配置不同的端口号&#xff0c;其他的都是一样的。 假设建立6个端口号分别为 5555到5560。 配置文件 port 5…

redis相关问题

面试官&#xff1a;什么是缓存穿透 ? 怎么解决 ? 候选人&#xff1a; 嗯~~&#xff0c;我想一下 缓存穿透是指查询一个一定不存在的数据&#xff0c;如果从存储层查不到数据则不写入缓存&#xff0c;这将导致这个不存在的数据每次请求都要到 DB 去查询&#xff0c;可能导致 D…

树莓派突然不能ssh远程连接的踩坑记录及解决方案

在家研究树莓派&#xff0c;远程连接树莓派吃了不少苦&#xff0c;总是一些意想不到的问题出现&#xff0c;明明昨天还能远程连接&#xff0c;今天又不能了。经过一系列排查&#xff0c;终于锁定&#xff1a; 因为我之前设置的树莓派的静态ip地址&#xff0c;但是可能因为是家…

ai创作软件有哪些?这5个软件了解一下

ai创作软件有哪些&#xff1f;随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域都展现出了惊人的实力。特别是在内容创作领域&#xff0c;AI技术已经成为了助力创作者们提高效率、释放创意的得力助手。今天&#xff0c;我们将为大家介绍五款AI创作…

开源模型应用落地-业务优化篇(四)

一、前言 经过线程池优化、请求排队和服务实例水平扩容等措施,整个AI服务链路的性能得到了显著地提升。但是,作为追求卓越的大家,绝不会止步于此。我们的目标是在降低成本和提高效率方面不断努力,追求最佳结果。如果你们在实施AI项目方面有经验,那一定会对GPU服务器的高昂…

软件工程(最简式总结)

目录 第一章:概述 1.软件危机的表现原因 2.常见的软件开发方法包括&#xff1a; 3.软件工程基本原则 4.软件工程三要素 5.设计模式的分类 6.针对变换型数据流设计步骤 7.针对事务型数据流设计步骤 第二章&#xff1a;软件过程 1.软件生命周期 2.软件过程模型 &…

视觉惯性SLAM系列——ORB-SLAM3的重定位线程(Relocalization Thread)(九)

ORB-SLAM3的重定位线程&#xff08;Relocalization Thread&#xff09;&#xff08;九&#xff09; 重定位线程&#xff08;Relocalization Thread&#xff09;在ORB-SLAM3系统中扮演着关键的角色&#xff0c;尤其是在跟踪丢失的情况下。这个线程的主要任务是在相机失去当前轨迹…

flask_django_python五金电商网络营销的可视化分析研究

前面部分完成了系统需求分析&#xff0c;了解到新闻数据业务方面的需求&#xff0c;系统主要分为用户管理、五金信息管理、在线留言、系统管理等功能。销的可视化研究&#xff0c;并对这些数据进行处理&#xff0c; 然后对这些数据进行可视化分析和统计。 Python 爬虫技术目前来…

Element-plus之el-upload上传图片后回显,以及将回显的图片再次上传

在实际的业务中往往需要把提交但尚未上传的图片显示回前端&#xff0c;等待上传&#xff0c;以下方法是将提交后的图片回显的方法 <template><el-uploadaction"/api/imageContainer/saveOrUpdate"accept"image/bmp,image/jpeg,image/jpg,image/png,ima…

优雅的从HuggingFace下载模型

1. 下载全部文件 以下都以下载bloom模型为例 git lfs install git lfs clone https://huggingface.co/bigscience/bloom-7b1这种方式下载会显示下载的进度及网速&#xff0c;因此一般推荐使用这种方式下载。如果直接使用git clone https://huggingface.co/bigscience/bloom-7…

【云计算】opentack的高级服务部署与调优

opentack的高级服务部署与调优 swift 对象存储 安装 Swift 服务。安装完成后&#xff0c;使用命令创建一个名叫 examcontainer 的容器&#xff0c;将 cirros-0.3.4-x86_64-disk.img 镜像上传到 examcontainer 容器中&#xff0c;并 设置分段存放&#xff0c;每一段大小为 10…

js数组和字符串之间的转换方式以及数组的一些方法

一、数组和字符串之间的转换方式 1&#xff09;将字符串切割成字符串数组—stringObject.split(separator, howmany) seperator-----字符串、正则表达式&#xff0c;必需 howmany------指定返回的数组的最大长度&#xff0c;可省略&#xff0c;省略后全量返回 源代码 var str&q…

Linux内核与驱动面试经典“小”问题集锦(1)

笔者混迹职场这么多年来换了不少工作。头些年做的是单片机工程师&#xff0c;后来转入了Linux。转入Linux后&#xff0c;一开始做BSP和驱动工程师&#xff08;当然后来应用工程师的事也没少干&#xff09;&#xff0c;近几年来专做了Linux内核与系统工程师。由打转入Linux后&am…