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

http://www.lryc.cn/news/164894.html

相关文章:

  • 类和对象(1)
  • 学会用命令行创建uni-app项目并用vscode开放项目
  • java.lang.ClassCastException: android.os.BinderProxy cannot be cast to ...
  • AIGC(生成式AI)试用 3 -- 专业主题
  • rsyslog-日志管理 logrotate-日志轮转
  • 类和对象续
  • SpringCloud:Feign实现微服务之间相互请求
  • LeetCode 1359. Count All Valid Pickup and Delivery Options【动态规划,组合数学】1722
  • [杂谈]-从硬件角度理解二进制数
  • Fast-DDS 服务发现简要概述
  • 基于spingboot的websocket订阅、广播、多人聊天室示例
  • Linux mac Windows三系统 局域网文件共享方法
  • Java——比较器
  • 【数据结构】初识泛型
  • 代码随想录--哈希--有效的字母异位词
  • MySQL——数据的增删改
  • 云服务器与http服务器
  • golang教程 beego框架笔记一
  • 【深度学习】Mini-Batch梯度下降法
  • AI项目六:WEB端部署YOLOv5
  • 敲代码常用快捷键
  • MyBatis: 分页插件PageHelper直接传递分页参数的用法
  • Python基于Flask的高校舆情分析,舆情监控可视化系统
  • Python第一次作业练习
  • InstallShield打包升级时不覆盖原有文件的解决方案
  • 服务器巡检表-监控指标
  • 无涯教程-JavaScript - DDB函数
  • uniapp打包微信小程序。报错:https://api.weixin.qq.com 不在以下 request 合法域名列表
  • stm32之31.iic
  • 新的 ChatGPT 提示工程技术:程序模拟