当前课程知识点:Java程序设计 > 第七章 图形用户界面 > 7.3-Swing的层次 > Swing的层次
大家好 欢迎回来继续学习
JAVA语言程序设计
这一节我们来了解一下
Swing的层次
一方面是它的类的
继承关系的层次
另一方面是我们需要使用
Swing组件的时候
这个组件该怎么组织 怎么放
它们之间是不是也有层次的呀
这些就是我们这一节要讲的内容
现在我们来看这样一个示意图
这个图表示了
多数Swing组件的继承层次
我们从下往上看
看最底下呢
是这个Swing包里面的
JComponent JComponent类
是大多数Swing组件的超类
是除了顶层容器以外的
所有Swing组件的超类
什么是顶层容器呢
后面马上就会给大家介绍的
然后JComponent它继承了什么呢
继承了awt这个包里面的Comtainer
所以它是从Comtainer
扩展而来的 前面一小节
我们简单介绍Swing的时候说过
Swing是在awt的基础之上
扩展而来的
那么从这就可以看到了
然后这个awt包的Comtainer
它又扩展自这个
awt的component
然后最顶上当然肯定是默认
从Object扩展而来的
在component类里面
包含了paint方法 repaint方法
可以用来在屏幕上去绘制组件
那大多数GUI组件
都是直接或间接的
从component扩展而来的
Comtainer是一个容器类
是用来容纳其它组件的
它里面就有这种add方法
添加方法
用来把其它的组件
添加到这个容器里面去
另外既然要把组件
添加到容器里面
那就要设置一下
这些组件在容器里面
怎么放置吧
它有setLayout方法
用来设置布局
这也是我们这章要给大家介绍的
设置布局就能够帮助
Comtainer对象
对其中的组件进行组织
那么Swing里面的Jcomponent类
是功能非常强大的
它可以定制观感lookfeel
也叫外观和感觉
可以设置快捷键
还有一些事件处理的功能
我们知道了Swing
是从哪扩展而来的
知道了这个继承层次
接下来我们就要来了解一下
Swing它的容器和组件
在窗口中布局和组织的时候
有什么样的层次关系
这里有这样几种
一种是顶层容器
一种是中间层的容器
还有就是原子组件
Swing的顶层容器
包括JFrame JDialog
和JApplet这样几种
JFrame是实现单个主窗口的
JDialog实现一个二级窗口
一个对话框
JApplet是用来在浏览器中
实现一个applet的显示区域的
那么由于顶层容器
必须要跟系统打交道
所以都是重量级的组件
从继承结构上来看
它们分别是从原来的AWT组件的
JFrame JDialog和JApplet类
继承而来的
每个使用组件的JAVA程序
都必须要有一个顶层容器
而其它的组件
都只能放在这个顶层容器上
才能显示得出来
那中间层容器顾名思义
它就是放在顶层容器上面
但是又是用来容纳其它的组件的
中间层容器可以分成两类
包括一般用途的
比如说我们后面要见到的
特别多用到的JPanel
那就是一个
另外还有这个ScrollPane
Splitpane等等
也有特殊用途的
JInternalFrame
比如说你希望
在一个应用程序窗口中
开多个子窗口的时候
就可以用JInternalFrame
还有JRootPane
也是一个特殊用途的
所谓原子组件
就是在图形用户界面的程序中
直接与用户直接交互的那些组件
原子组件包括显示
不可编辑信息的
像这个JLabel
JProgressBar JToolTip等等
还有一些是有控制功能的
可以用来输入信息的
比如说JButton 按纽JCheckBox
RadioButton等等这些
还有能够提供格式化的信息
并且允许用户选择的
像颜色选择器
JColorChooser
还有这个选择文件的这个选择器
JFileChooser
还有这个表格 JTable
还有树型结构 JTree
下面我们就通过一个例子
来看一下这个三层容器结构
现在我们在这个例题中
我们将一些组件
放到窗口里面去
运行的结果我们看一下
希望是这个样子的
看看这里有两个按纽
我们来看这按纽边上
好像离窗口的边框还有些距离
怎么做到的呢 我们来看
首先也是要有一个JFrame
是主窗口 就是外面窗口
然后取得它顶层的内容面板
用getContenPane
去取得一个内容面板
接下来我们并不是直接将
这个Label和Button
就放在这个面板上
而是又去构造了
一个中间容器 JPanel
接下来我们大家看
这设置Border 设置边框
我们设置这个panel的边框
你可以设置它的粗细和颜色
我们设置了宽度为5
颜色是黑色的这样边框
这就是我们看到的效果
好 那为什么这个两个组件
一个Label 一个Button
会也距离这个外边框
有这么宽的一个Border呢
是因为我们最后是将
这个Label和Button
放在这个panel上面了
并不是直接放在
顶层的内容面板上
是放在中间层的容器上面了
所以说我们看到
由中间层容器
容纳了原子组件
这样的好处就是说
我们可以按照自己的方式
来组织这些组件
按照自己的方式
来组织这些组件
比如说让它离外边框有一个距离
那我们用Border就可以了
pack和show就是进行排列显示
同样还是例行的
要对这个关闭窗口按纽
做一个设置
在这个表中列出了
常用的Swing组件
其中的一些
在我们这一章的例题中
大家会遇到
但是由于课时的关系
更多的组件
我们可能在课中
不能给大家举例演示怎么用
大家如果需要的话
也需要去阅读更多的资料
去自己来慢慢的尝试学习使用
在这一节中我们了解了
Swing的层次
既包括它的类的继承层次
也了解了如果我们想使用
Swing组件的话
它的顶层容器 中间层容器
以及原子组件
它们的摆放该遵循什么样的
一个层次关系
好这节的内容就是这样
-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章小结
-课件
--课件