java程序设计9.2--Swing概述,Swing*容器,布局管理器

GUI
GUI,即图形管理器,就是用来提供给用户操作的图形界面,可实现包括窗口、菜单、按钮、工具栏和其他各种图形界面元素,从而实现程序的图形用户界面来方便用户操作。

一.Swing概述

Swing是一种轻量级组件,它由Java语言开发,同时底层以AWT为基础,使跨平台应用程序可以使用任何插拔的外观风格,并且Swing可以通过简洁的代码、灵活的功能和模块化组件来创建优雅的用户界面。Swing并不是AWT的替代品,而是在原有的AWT的基础上进行了补充和改进。

Swing组件继承关系:

java程序设计9.2--Swing概述,Swing*容器,布局管理器
注:
Swing组件的所有类都继承自Container类,有两个分支:容器分支(包括Window窗口和Panel面板)和组件分支。容器分支是为实现图形用户界面窗口容器而设计的,组件分支为实现向容器中填充数据、元素及人机交互组件等功能。
Swing组件常用的*容器类包括有JApplet、JFrame和JDialog;常用组件类中AbstractButton类及其子类就是用来定义按钮常见行为的工具类,JTextComponent类及其子类就是用来定义文本内容编辑区域的工具类。

二.Swing*容器

1.JFrame
最常见,是一个独立存在的*容器(也叫窗口),不能放置在其他容器之中,JFrame支持通用窗口所有的基本功能。
eg:
1.8版本
java程序设计9.2--Swing概述,Swing*容器,布局管理器
1.6版本,使用成员方法
java程序设计9.2--Swing概述,Swing*容器,布局管理器

java程序设计9.2--Swing概述,Swing*容器,布局管理器
注:最初建立的窗口是不显示的,所以后面有显示容器窗口的操作。

2.JDialog
通常用来表示对话框窗口,对话框窗口可分为两种:模态对话框和非模态对话框。模态对话框指用户需要等到处理完对话框后才能继续与其他窗口交互,非模态对话框允许用户在处理对话框的同时,与其他窗口交互。
eg:
java程序设计9.2--Swing概述,Swing*容器,布局管理器
java程序设计9.2--Swing概述,Swing*容器,布局管理器
注:模态对话框,所以在操作时必须先关闭JDialog对话框后,才能与JFrame窗口进行交互。
构造方法一般默认为非模态对话框,有ture和false的构造方法,ture为模态,false为非模态。
三.布局管理器

Swing组件不能单独存在,必须放置于容器中,而组件在容器和尺寸由布局管理器来决定。
八种布局管理器:
BorderLayout(边界布局管理器)、BoxLayout(箱式布局管理器)、CardLayout(卡片布局管理器)、FlowLayout(流式布局管理器)、GridBagLayout(网格包布局管理器)、GridLayout(网格布局管理器)、GroupLayout(分组布局管理器)和SpringLayout(弹性布局管理器)
特别-----绝对布局
1.BorderLayout(边界布局管理器)
BorderLayout(边界布局管理器)是一种较为复杂的布局方式,它将容器划分为5个区域,分别是页头(PAGE START)、页尾(PAGE FND)、行首(LNE START)、行尾(INE_END)、中部(CENTER)。组件可以被放置在这5个区域中的任意一个位置。
eg:
1.8版本
java程序设计9.2--Swing概述,Swing*容器,布局管理器
java程序设计9.2--Swing概述,Swing*容器,布局管理器
1.6版本,用成员方法
java程序设计9.2--Swing概述,Swing*容器,布局管理器
注:
JFrame默认使用边界布局管理器。
如果不指明组件添加到那个区域,默认添加到CENTER区域。
每个区域只能添加一个组件,若添加多个,后放入的组件会覆盖先放入的组件,

2.Flowlayout(流式布局管理器)
Flowlayout(流式布局管理器)是最简单的布局管理器,在这种布局下,容器会将组件按照添加顺序从左向右放置,当到达容器的边界时,会自动将组件放到下行的开始位置。这些组件可以按左对齐、居中对齐(默认方式)或右对齐的方式排列。
eg:
java程序设计9.2--Swing概述,Swing*容器,布局管理器
注:对齐方式分为左对齐,居中对齐,右对齐。
3.GridLayout(网格布局管理器)
GridLayout(网格布局管理器)使用纵横线将容器分成n行m列大小相等的网络,每个网格中可以添加一个组件。 添加到容器中的组件首先放置在第 工行第1列(左上角)的网格中,然后在第1行的网格中从左向右依次放置其他组件,行满后,继续在下一.行中从左到右、放置组件。与FlowLayout不同的是,放置在GridLayout布局管理器中的组件将自动占据网格的整个区域。
eg:
java程序设计9.2--Swing概述,Swing*容器,布局管理器
注:GridLayout 布局管理器的特点是组件的相对位置不随区域的缩放而改变,但组件的大小会随之改变,组件始终占据网格的整个区域。缺点就是总是忽略组件的最佳大小,所有组件的宽高都相同。
4.绝对布局
固定的位置,固定的大小
eg:
1.8版本
java程序设计9.2--Swing概述,Swing*容器,布局管理器
1.6版本,用成员方法

java程序设计9.2--Swing概述,Swing*容器,布局管理器