JAVA学习中Swing部分JDialog对话框窗体的简单学习

简介: package com.swing;import java.awt.Color;import java.awt.Container;import java.awt.event.ActionEvent;import java.

package com.swing;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

/**
 * 1:JDialog窗体时Swing组件中的对话框,
 * JDialog的功能就是是从一个窗体中弹出另一个窗体,就像是在使用浏览器时弹出的确定对话框一样
 *
 * 2:JDialog窗体和JFrame窗体类似,在使用时也需要调用getContentPane()方法将
 * 窗体转化为容器,然后在容器中设置窗体的特性
 *
 * 3:JDialog有五种构造方法,可以用来指定标题,窗体,和模式的对话框
 * @author biexiansheng
 *
 */
public class JDialogTest extends JDialog{
    
    public JDialogTest(){
        //实例化一个JDialog类对象,指定对话框的父窗体,窗体标题和类型
        super();
        Container container=getContentPane();
        container.setBackground(Color.green);
        container.add(new JLabel("这是一个对话框"));
        setBounds(120,120,100,100);
    }
    
    public void MyFrame(){
        JFrame jf=new JFrame();//实例化JFrame对象
        Container container=jf.getContentPane();//将窗体转化为容器
        JButton jb=new JButton("弹出对话框");
        jb.setBounds(10, 10, 100, 20);//设置按钮的大小
        jb.addActionListener(new ActionListener() {
            //定义匿名内部类,这样才可以点击出现反应
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                new JDialogTest().setVisible(true);;
            }
        });
        container.add(jb);//将按钮添加到容器中,这点非常重要,不然无法显示
        //设置容器的结构的特性
        jf.setTitle("这是窗体转化为容器");
        jf.setSize(200,200);//设置容器的大小
        jf.setVisible(true);//使窗体可见
        //设置窗体的关闭模式
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JDialogTest jd=new JDialogTest();
        jd.MyFrame();
    }

}

标准案例如下

package com.swing;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

/**
 * 1:按钮JButton
 * @author biexiansheng
 *
 */
public class MyFrame extends JFrame {

    public void MyFrame(){
        JFrame jf=new JFrame();//实例化一个JFrame对象
        Container container=jf.getContentPane();//将窗体转化为容器
        //Container container=getContentPane();
        container.setLayout(null);
        
        JLabel jl=new JLabel("这是一个JFrame窗体");//在窗体中设置标签
        jl.setHorizontalAlignment(JLabel.CENTER);//将标签中的文字置于标签中间的位置
        container.add(jl);//将标签添加到容器中
        
        JButton jb=new JButton("点我");//实例化一个按钮属性
        jb.setBounds(20, 20,100, 50);
        jb.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                //使MyJDialog窗体可见
                new MyJDialog(MyFrame.this).setVisible(true);
            //上面一句话使对话框窗体可见,这样就实现了当用户单机该按钮后将弹出对话框的功能
            }
        });
        container.add(jb);//将按钮属性添加到容器中
        
        //设置容器里面的属性特点
        container.setBackground(Color.blue);
        //设置容器的框架结构特性
        jf.setTitle("这是一个容器");//设置容器的标题
        jf.setVisible(true);//设置容器可视化
        jf.setSize(450, 400);//设置容器的大小
        //设置容器的关闭方式
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyFrame fm=new MyFrame();
        fm.MyFrame();
    }

}

class MyJDialog extends JDialog{
    //本实例代码可以看到,JDialog窗体和JFrame窗体形式基本相同,甚至在设置窗体的特性
    //时调用的方法名称都基本相同,如设置窗体的大小,设置窗体的关闭状态等
    public MyJDialog(MyFrame frame){//定义一个构造方法
        //实例化一个JDialog类对象,指定对话框的父窗体,窗体标题,和类型
        super(frame,"第一个JDialog窗体",true);
        Container container=getContentPane();//创建一个容器
        container.add(new JLabel("这是一个对话框"));//在容器中添加标签
        container.setBackground(Color.green);
        setBounds(120,120,100,100);
        
    }
}

 

目录
相关文章
|
9月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
716 0
|
9月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
854 8
|
9月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
441 1
|
9月前
|
Java 虚拟化 容器
(Java)Java里JFrame窗体的基本操作(容器布局篇-1)
容器 容器,我的理解是可以包容其他东西的玩意。它可以是一个盒子,可以是一个虚拟化的物品,可只要能包裹住其他存在质体的东西,那么都可以称作是容器。例如:JPanel组件和JScollPane组件两者都是容器也是组件。 既然有容器,那么容器中的布局就必不可少了。不然不规矩的摆放物品,人类看不习惯,我也看不习惯 ???? 本篇内容,将说明java JFrame窗体里容器中几类布局。 说明:所有在JFrame窗体里的容器布局都会使用setLayout()方法,采用的布局参数都将放进这个方法里 绝对布局 调用窗体容器
242 1
|
9月前
|
Java 数据安全/隐私保护 索引
(Java)Java里JFrame窗体的基本操作(组件篇-3)
回顾 说过了下拉框和下拉列表,本篇内容将了解滚动面板和各类输入框 什么是组件? 如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入; 另:在使用组件前,请先将窗体中的内容类给实例化出来进行操作,代码如下: Container c = getContentPane(); JScollPane JScollPane类,说的就是滚动面板。它不同于其他组件,它是一个容器,
193 2
|
9月前
|
Java 索引 容器
(Java)Java里JFrame窗体的基本操作(组件篇-2)
回顾 这算是JFrame窗体基本操作的组件第二篇了,上一篇说过了单选框,复选框,按钮。 在这一篇中,我会说明下拉框和列表框 什么是组件? 自行百度:java中JFrame窗体里的组件是什么? 名字都给你想好了 ( :I ) JComBox下拉框 JComBox类,就是下拉框,实例化出来后,要填写泛型<>,添加是什么数据类型的内容,泛型中就写上该数据类型; JComboBox<?> combox = new JComboBox<>(); 以下实例化下拉框的时候我泛型写的全
234 1
|
9月前
|
Java 调度 容器
(Java)JFrame窗体的基本操作(1-窗体的创建)
什么是窗体? 窗体,是某个程序,在电脑中,手机中的窗口化程序。它在非固定状态下,可以自由的变换大小。同时,窗体,也是容器,窗体这个容器可以在内部处理很多的小组件。 窗体的具体例子:例如,所有的浏览器,浏览器中网页里打开的提示框,电脑的QQ,手机上的小窗模式,都是窗体; 在本篇内容中,我们会使用JFrame和JDialog两个类,在实现java中的窗体; 在JAVA中如何创建窗体? 在java中,我们需要引入javax.swing包下的JFrame类或者JDialog类,这样才能使用两个窗体;但是,一些窗
431 0
|
9月前
|
Java 容器
(Java)Java里JFrame窗体的基础操作(组件-1)
如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,当然这只是在不熟悉组件的前提下。如果深入了解了组件,那么它有着非常多的组件,这些组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入
193 1
|
10月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
148 5
|
10月前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
249 1