java:JDialog窗体(对话框,弹出的窗口)

一、JDialog窗体

JDialog窗体常用功能是从一个窗体中弹出另一个窗体。

二、重点内容

1.super(超级)

主要用于打开了子窗体时,阻塞对父窗体的修改。也就是说打开了窗体便不能对父窗体有任何动作,关闭子窗体才可以对父窗体开始操作。
super(A,B,C);
A-----父窗体对象
B-----对话框标题
C-----是否阻塞父窗体

2.按钮Btton

JButton btn=new JButton("弹出对话框");
表示创建按钮,然后按钮标签为“弹出对话框”。

c.setLayout(new FlowLayout());
设置布局,使用流布局。不使用流布局(也就是当没有使用这句代码时),按钮会占满整个窗体,而不是像下面的淡蓝色长方形了。
在这里插入图片描述

三、源码

import java.awt.Container;// 容器
import java.awt.FlowLayout;// 布局
import java.awt.event.ActionEvent;// 动作事件
import java.awt.event.ActionListener; // 动作监听
import javax.swing.*;// JDialog窗体是Swing组件中的对话框

class Demo extends JDialog{		// Demo继承JDialog类
	public Demo(JFrame frame){
		/*
		* 第一个参数:父窗体对象
		* 第二个参数:对话框标题
		* 第三个参数:是否阻塞父窗体
		*/
		super(frame,"对话框标题",true);

		Container c=getContentPane();// 获取窗体容器,Container(容器),content(内容),pane(窗格)
		c.add(new JLabel("这是一个对话框"));// 设置一个标签,label(标签)

//1		setVisible(true);// 设置窗体可见,visible(可见物),放这最后对话框缩起来
		setBounds(400,300,100,100);// 设置窗体坐标,x、y、长、宽,bounds(界限)
	}

	public static void main(String[] args){
		JFrame f=new JFrame("父窗体");
		f.setBounds(300,200,300,300);
		Container c=f.getContentPane();
		JButton btn=new JButton("弹出对话框");
		c.setLayout(new FlowLayout());//设置布局,使用流布局
		c.add(btn);// 容器c里添加按钮
		f.setVisible(true);// 窗体是否可见
		f.setDefaultCloseOperation(EXIT_ON_CLOSE);// 关闭规则
		
		//添加动作监听
		btn.addActionListener(new ActionListener(){	// Action(行动)
			public void actionPerformed(ActionEvent e){// performed(执行),event(事件)
//1				new Demo(f);// 传入f
				// 设置Demo类d,对d进行操作指令
				Demo d=new Demo(f);
				d.setVisible(true);// 设置窗体可视化
			}
		});
	}
}

四、源码运行效果

  • 源码刚开始运行时,没有任何动作
    在这里插入图片描述
  • 点击按钮后
    在这里插入图片描述

五、补充说明

btn.addActionListener(new ActionListener(){	// Action(行动)
			public void actionPerformed(ActionEvent e){// performed(执行),event(事件)
//1				new Demo(f);// 传入f
				// 设置Demo类d,对d进行操作指令
				Demo d=new Demo(f);
				d.setVisible(true);// 设置窗体可视化
			}
		});

一开始在上面这段点击“按钮”的代码时,javac后会出现“找不到符号”的错误,并且代码没有问题。这时程序前用的是import java.awt.*
我解决的方法是取消import java.awt.*并把用到的awt类全打进去,如下:

import java.awt.Container;// 容器
import java.awt.FlowLayout;// 布局
import java.awt.event.ActionEvent;// 动作事件
import java.awt.event.ActionListener; // 动作监听

六、与小恐龙挑战的关系

小恐龙挑战中用到了swing,程序窗口的使用,而我这一块的知识不稳固,最近一段时间会专门学习swing的一些基本用法。学完这一部分,再根据挑战的内容,选择其他还未懂的内容进行学习。

六、定位日期

2020.7.15;22:50

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值