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。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「递归算法」:二叉树的所有路径

一、题目 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [1,2,3,null,5] 输出:["1->2->5","1->3&qu…

微信小程序实现吸顶、网格、瀑布流布局

微信小程序开发通常是在webview模式下编写,但是对小程序的渲染性能有一定的追求,就需要使用Skyline模式进行渲染,同时在这种模式下有也有一些特殊的组件,可以轻松的实现想要的效果,本文将介绍在Skyline模式下如何实现吸…

NoSQL(非关系型数据库)

目录 前言: 一、NoSQL的类别 1.1 键值(key-value)存储数据库 1.2 列存储数据库 1.3 文档型数据库 1.4 图形数据库 二、NoSQL适应场景 三、在分布式数据库中的CAP原理 3.1 传统的ACID 3.2 CAP 四、什么是BASE 前言: NoS…

【数据结构】二叉树链式结构的实现

简单不先于复杂,而是在复杂之后。 文章目录 1. 二叉树链式结构的实现1.1 前置说明1.2 二叉树的遍历1.2.1 前序、中序以及后序遍历1.2.2 层序遍历 1.3 节点个数以及高度等1.4 二叉树基础oj练习1.5 二叉树的创建和销毁 1. 二叉树链式结构的实现 1.1 前置说明 在学习二…

如何搭建 sqli-labs 靶场保姆级教程(附链接)

一、环境准备 建议采用虚拟机作为靶场环境的承载平台,以实现更灵活、可定制的配置,提高系统资源的利用效率。这种部署方式不仅能够有效隔离实验环境,降低对真实硬件的依赖,还能够快速搭建和复制实验场景,为安全测试和…

IGMP——网际组管理协议

目录 1 IGMP 1.1 IGMP 使用 IP 数据报传递其报文 1.2 IGMP 工作 第一阶段:加入多播组 第二阶段:探询组成员变化情况 1.3 IGMP 采用的一些具体措施,以避免增加大量开销 1 IGMP 标准 1989 年公布的 RFC 1112(IGMPv1&#xff…

总观看量已超千万!新就业形态劳动者新春联谊会成功播出

春节到来之际,由中华全国总工会主办,中国海员建设工会、中国国防邮电工会、中国财贸轻纺烟草工会、中华全国总工会文工团联合承办,中国职工发展基金会协办,北京市总工会支持的“温暖有你 共赴美好”2024年新就业形态劳动者新春联谊会,于2月2日晚8点在新华网、央视频、全国总工会…

Java自救手册

目录 访问地址 访问地址,发现不通,无法访问: 网络不通一般有两种情况: Maven 拿Maven 拿到Maven以后 Maven单独的报红 Git git注意: 目录 访问地址 访问地址,发现不通,无法访问&…

Java 使用 ant.jar 执行 SQL 脚本文件

Java 使用 ant.jar 执行 SQL 脚本文件&#xff0c;很简单。 在 pom.xml 中导入 ant 依赖 <dependency><groupId>org.apache.ant</groupId><artifactId>ant</artifactId><version>1.10.11</version> </dependency>sql 脚本文件…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第6章 逻辑斯谛回归与最大熵模型(2)6.2 最大熵模型

文章目录 6.2 最大熵模型6.2.1 最大熵原理6.2.3 最大熵模型的学习6.2.4 极大似然估计 《统计学习方法&#xff1a;李航》笔记 从原理到实现&#xff08;基于python&#xff09;-- 第3章 k邻近邻法 《统计学习方法&#xff1a;李航》笔记 从原理到实现&#xff08;基于python&am…

远程桌面时连接不上远程计算机是什么问题

在服务器上搭建网络程序时&#xff0c;我们经常会有需要远程连接上服务器进行相关操作&#xff0c;有些用户在远程桌面的时候&#xff0c;有时会有遇上无法连接到远程计算机的情况。 很多用户都曾遇到在远程桌面时出现“未启用对服务器的远程访问”、“远程计算机已关闭”、“…

vit细粒度图像分类(九)RAMS-Trans学习笔记

1.摘要 在细粒度图像识别(FGIR)中&#xff0c;区域注意力的定位和放大是一个重要因素&#xff0c;基于卷积神经网络(cnn)的方法对此进行了大量探索。近年来发展起来的视觉变压器(ViT)在计算机视觉任务中取得了可喜的成果。与cnn相比&#xff0c;图像序列化是一种全新的方式。然…

【开源】SpringBoot框架开发大学计算机课程管理平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

Mac安装Homebrew+MySQL+Redis+Nginx+Tomcat等

Mac安装HomebrewMySQLRedisNginxTomcat等 文章目录 Mac安装HomebrewMySQLRedisNginxTomcat等一、Mac安装Mysql 8①&#xff1a;下载②&#xff1a;安装③&#xff1a;配置环境变量④&#xff1a;外部连接测试 二、Mac安装Redis和可视化工具①&#xff1a;安装Redis01&#xff1…

c++用户管理信息(类指针数组)

用户管理信息--类指针数组 类示意图select类示意图MyIterator示意图VetorCstu示意图ClassStu示意图 项目源代码selectselect.hselect.cpp MyIteratorMyIterator.hMyIterator.cpp VetorCstuVetorCstu.hVetorCstu.cpp ClassStuClassStu.hClassStu.cpp main源码 总结---数组管理指…

Linux Shell命令系列--basename获取基本文件名

一、目的 学习linux shell编程的第一步就是熟悉linux的各种命令的使用&#xff0c;本篇开始逐次介绍一些常用linux shell命令。 今天我们来讲解basename命令的使用。 二、介绍 1、基本概念 basename命令首先去除字符串末尾多余的斜杠&#xff08;如果有的话&#xff09;&#…

【AG32VF407】国产MCU+FPGA Verilog双边沿检测输出方波

视频讲解 [AG32VF407]国产MCUFPGA Verilog双边沿检测输出方波 实验过程 本次使用使用AG32VF407开发板中的FPGA&#xff0c;使用双clk的双边沿进行检测&#xff0c;同步输出方波 同时可以根据输出的方波检测clk的频率&#xff0c;以及双clk的相位关系&#xff0c;如下为verilog…

【c++】vector用法详解

vector用法详解 vector定义vector容器的构造函数vector容器内元素的访问1.通过下标 [ ]来访问2.通过迭代器来访问3.通过范围for来访问 vector常用函数的用法解析1.size()2.clear()3.capacity()4.reserve()5.resize()6.shrink_to_fit()7.pop_back()8.push_back()9.erase()10.in…

父类之王“Object”类和内部类

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;&#x1f468;&#x1f3fb;‍&#x1f393;告别&#xff0c;今天 &#x1f4d4;高质量专栏 &#xff1a;☕java趣味之旅 欢迎&#x1f64f;点赞&#x1f5e3;️评论&#x1f4e5;收藏&#x1f493;关注 &#x1f496;衷心的希…

ES6-let

一、基本语法 ES6 中的 let 关键字用于声明变量&#xff0c;并且具有块级作用域。 - 语法&#xff1a;let 标识符;let 标识符初始值; - 规则&#xff1a;1.不能重复声明let不允许在相同作用域内重复声明同一个变量2.不存在变量提升在同一作用域内&#xff0c;必须先声明才能试…