当前课程知识点:Java程序设计 > 第七章 图形用户界面 > 7.8-顶层容器 > 7.8-顶层容器
大家好
欢迎回来继续学习Java语言程序设计
这一节我们来了解一下
swing的顶层容器
我们知道swing它这个组件的结构
是以顶层容器为根的
这么一个树状的结构
那么每个组件
都只能放在一个容器上
如果你把一个组件
放在这个容器上
然后一会儿
你又把它放在另外一个容器上
那它就会从先前的容器上移走了
好
接下来我们就来详细了解一下
Javaswing的顶层容器
swing有三个顶层容器类
它们是JFrame JApplet和JDialog
这一个都是重量级的组件
分别继承了AWT组件的Frame Applet和Dialog
每个顶层容器它都有一个内容面板
通常是直接或间接的容纳别的组件的
我们可以有选择的
为顶层容器添加菜单
菜单是放在顶层容器上
但是是在内容面板之外的
这就是JFrame的继承结构
我们可以看到
它是继承了AWT的JFrame
JApplet也是继承了AWT的Applet
JDialog是直接继承了AWT的Dialog
那么我们怎么去
获得一个顶层容器
只有JApplet是
由浏览器自动生成的
我们不需要去构造JApplet对象
那么JFrame和JDialog
都需要我们去构造对象
并且用构造方法去初始化
这里列出了这几个顶层容器
它们的构造方法
我就不一一仔细的去分析了
大家可以参考这张表的内容
自己去尝试写一些程序用一用
下面我们就来通过例题
来看一下这三个顶层容器怎么用
首先我们来看一个Frame的应用
Frame是一个顶层容器
也实际上就是我们的
应用程序的主窗口
我们看这个程序运行起来
就是展示了这么一个窗口
然后我们来看看代码
首先是要构造一个JFrame的对象
然后它上面应该是有一个标题的
窗口标题
那我们看到因为窗口很小
这标题没显示出来
如果我们把它拉大的话
大家会看到这窗口的标题是这个
然后接下来就要设置
它的默认的关闭按钮的功能
关闭按钮退出程序
设计这个功能
接下来我们要在窗口中
放一个什么放一个Label
一个Label它是用来显示文本的
但是现在这个Label上
我们是给的是空串
所以是一个空的Label没有文本
然后设置一下这个Label的大小
给了一个尺寸
接下来就要从这个Frame
这个顶层容器中获得
一个内容面板getContentPane
然后将这个Label一个空的Label
加到内容面板上去
就是这一块区域
好
然后把它大小调成合适的
然后设置成可见的
这就是一个简单的
顶层容器的一个演示
现在我们再来看一下这个例子
这个例子运行的时候我们看到
这个窗口里有点热闹
有天蓝的有黄的
它们分别都是什么呢
好 我们来看一下代码
首先也是要构造一个Frame
又一个JFrame作为
这个顶层容器这个主窗口
然后要构造一个Label
Label上面同样还是没有文字
是空的
只是我们后面
要把它的颜色设置一下
把它的背景颜色设置成黄颜色
然后同样设立一下大小
那么接下来我们看到
又构造了一个JMenuBar
所以这一条是MenuBar
只不过现在我们
没往上加任何菜单和菜单项
但是菜单条是在这儿了
然后这个MenuBar
被设置成天蓝色了
好 接下来我们就
将这个Label和MenuBar
都添加到这个窗口里面去
这个Label是添加在哪儿
是添加在这个内容面板上
我们来看getContentPane
得到内容面板以后添加这个Label
而MenuBar是添加在哪儿
它添加在这个Frame里面
但是不在内容面板里面
它是用JMenuBar设置添加上去的
接下来这个例子就要展示一下
怎么样来使用对话框
要使用对话框就要通过静态方法
show什么什么Dialog
来给出对话框来
这些方法可以产生
四种简单的对话框
它们的方法参数中
除了输入对话框
可以不指定副窗口以外
其他的都需要
提供一个副窗口组件
只有关闭这些简单对话框以后
才可以返回到它的副窗口
也就是说它们绝大部分
都是模态的
现在我们来看一下
这个例题的源代码
先看一下我们
这个例题运行的状态
运行的时候我们就会看到
在这个窗口中有一个退出按钮
那么点到退出按钮以后
就会出现一个
确认退出的这个对话框
问你要确认退出吗
这时候你可以点确定或者是取消
好 那我们来看
这个JOptionPaneDemo
它就扩展了JFrame
实现了ActionListener
所以它自己就起到了
事件监听器的作用
同样一开始还是
将这个标题传给它的超类
也就是最后会在这个窗口的
这个标题的位置显示简单对话框
如果窗口拉大的话
你会看到完整的标题
然后要得到这个内容面板
接下来就要构造这个退出按钮
构造一个按钮
然后给按钮注册监听器
这个监听器就注册为当前对象自己
因为当前类
它实现了ActionListener这个接口
然后设置它的layout布局
最后把这个Button
添加到内容面板上去
好 那再看
这是ActionPerformed的事件响应方法
在这个事件响应方法中要干什么
要弹出对话框来
我们来看这个是一个确认对话框
那就是调用showConfirmDialog
然后提示信息就是确定要退出吗
然后用户可以选择确定或者取消
如果选择了确定那就退出程序
如果选择取消当然就不退出程序
这个事件反应结束以后
这个确认对话框关闭了以后
就会还是依然回到原来的窗口
再看这个主方法中构造了
一个JOptionPaneDemo这个对象
然后设置了一下
主窗口的这个默认关闭
然后将主窗口的大小设置合适
然后显示就可以了
好 这一节我们了解了一下
Label的顶层容器
那这一节内容就是这样
-1.0-导学
--1.0-导学
-1.1-Java与面向对象程序设计简介
--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介
-1.2-基本数据类型与表达式
-第一章 Java语言基础知识--1.2-基本数据类型与表达式
-1.3-数组
--1.3.1-数组
-第一章 Java语言基础知识--1.3-数组
-1.4-算法的流程控制
--第一章 Java语言基础知识--1.4-算法的流程控制
-1.5-第一章小结
-第一章编程练习题
-课件
--外部链接
-Java环境配置、Eclipse使用、Helloworld程序详解
--使用eclipse建立Java项目、编写和运行Java程序
-Java数据类型
--Java整数类型
--Java浮点类型
--数据类型实战
--数据类型转换
--Java强制类型转换精度损失示例与表达式中的数据类型转换
-Java数组
-Java变量
--Java的变量
-命令行参数
--命令行参数的介绍
-2.0-导学
--2.0-导学
-2.1-面向对象方法的特性
--第二章 类与对象--2.1-面向对象方法的特性
-2.2-1-类声明与对象创建
--第二章 类与对象--2.2-1-类声明与对象创建
-2.2-2-数据成员
--第二章 类与对象--2.2-2-数据成员
-2.2-3-方法成员
--第二章 类与对象--2.2-3-方法成员
-2.2-4-包
--2.2-4-包
--第二章 类与对象--2.2-4-包
-2.2-5-类的访问权限控制
--第二章 类与对象--2.2-5-类的访问权限控制
-2.3-1-对象初始化
--第二章 类与对象--2.3-1-对象初始化
-2.3-2-内存回收
--第二章 类与对象--2.3-2-内存回收
-2.4-枚举类
--2.4-枚举类
--第二章 类与对象--2.4-枚举类
-2.5-应用举例
--2.5-应用举例
-2.6-第2章小结
-第二章编程练习题
-课件
--第二章课件
-3.0-导学
--3.0-导学
-3.1.1-3.1.2-类继承的概念和语法
--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法
-3.1.3-隐藏和覆盖
--第三章 类的重用--3.1.3-隐藏和覆盖
-3.2-Object 类
--第三章 类的重用--3.2-Object 类
-3.3-终结类与终结方法
--第三章 类的重用--3.3-终结类与终结方法
-3.4-抽象类
--3.4-抽象类
--第三章 类的重用--3.4-抽象类
-3.5-泛型
--3.5-泛型
--第三章 类的重用--3.5-泛型
-3.6-类的组合
--3.6-类的组合
-3.7-小结
--3.7-小结
-第三章编程练习题
-课件
--课件
-4.0-导学
--导学
-4.1-接口
--接口
--第四章 接口与多态--4.1-接口
-4.2.1-4.2.2-类型转换
--类型转换
--第四章 接口与多态--4.2.1-4.2.2-类型转换
-4.2.3-方法的查找
--方法的查找
--第四章 接口与多态--4.2.3-方法的查找
-4.3-多态的概念
--多态的概念
--第四章 接口与多态--4.3-多态的概念
-4.4-多态的应用举例
--多态的应用举例
--第四章 接口与多态--4.4-多态的应用举例
-4.5-构造方法与多态性
--构造方法和多态性
--第四章 接口与多态--4.5-构造方法与多态性
-4.6-本章小结
--本章小结
-第四章编程作业
-课件
--课件
-5.0-导学
--5.0-导学
-5.1.1-5.1.2-异常处理的概念
--第五章 输入输出--5.1.1-5.1.2-异常处理的概念
-5.1.3-5.1.5-异常的处理
--第五章 输入输出--5.1.3-5.1.5-异常的处理
-5.2-输入输出流的概念
--输入输出流的概念
--第五章 输入输出--5.2-输入输出流的概念
-5.3.1-写文本文件
--写文本文件
--第五章 输入输出--5.3.1-写文本文件
-5.3.2-读文本文件
--读文本文件
--第五章 输入输出--5.3.2-读文本文件
-5.3.3-写二进制文件
--写二进制文件
--第五章 输入输出--5.3.3-写二进制文件
-5.3.4-读二进制文件
--读二进制文件
-5.3.5-File类
--File类
-5.3.6-处理压缩文件
--处理压缩文件
-5.3.7-对象序列化
--对象序列化
-5.3.8-随机文件读写
--随机文件读写
-5.4-本章小结
--本章小结
-课件
--课件
-6.0-导学
--导学
-6.1-Java集合框架介绍
--第六章 对象群体的组织--6.1-Java集合框架介绍
-6.2-主要接口及常用的实现类
--第六章 对象群体的组织--6.2-主要接口及常用的实现类
-6.3-常用算法
--常用算法
-6.4-数组实用方法
-6.5-基于动态数组的类型(Vector, ArrayList)
--基于动态数组的类型(Vector, ArrayList)
-6.6-遍历Collection
-6.7-Map接口及其实现
-6.8-第6章小结
--第6章小结
-课件
--课件
-7.0-导学
--导学
-7.1-绘图
--绘图
-7.2-Swing基础
--Swing基础
-7.3-Swing的层次
--Swing的层次
-7.4-布局管理
--布局管理
-7.5-内部类
--内部类
-7.6-事件处理的基本概念
-7.7-事件派发机制
--事件派发机制
-7.8-顶层容器
--7.8-顶层容器
-7.9-中间层容器(一)
-7.10-中间层容器(二)
-7.11-原子组件(一)
-7.12-原子组件(二)
-7.13-原子组件(三)
-7.14-其它Swing特性
-7.15-第7章小结
-课件
--课件