Swing用户界面组件
辽宁经济职业技术学院信息系
硕士、副教授 陈英
模型 — 视图 — 控制器设计模式
模型 —— 存储内容。
视图 —— 显示内容。
控制器 —— 处理用户输入。
每个 Swing都有三个要素:
1) 内容,例如按钮的状态(是否按下)。
2) 可视外观(颜色、尺寸等)。
3) 行为(对事件的反应)。
布局管理器概述
一个容器内的所有组件都由一个布局管理器进
行管理。
1) 流布局管理器( java.awt.FlowLayout)
它是面板的默认布局管理器。在一行上水平排列组
件,直到该行上没有足够的剩余空间为止,这时另
起一新行。默认处理是居中显示。
2) 边界布局管理器( java.awt.BorderLayout)
这是每个 JFrame的内容窗格的默认布局管理器。
可以选择组件放在内容窗格的中间、北边、南边、
东边或者西边。
java.awt.Container
setLayout(LayoutManger m)
为容器设置布局管理器。
java.awt.FlowLatout
? FlowLayout(int align)
? 根据指定的对齐方式( LEFT,CENTER或者
RIGHT)来构造一个新 FlowLayout 。
网格布局管理器
3,网格布局管理器( java.awt.GridLayout)
GridLayout(int rows,int cols)
构造一个具有 rows行,cols列的新的网络布
局管理器。
GridLayout(int rows,int cols,int hgap,int
vgap)
使用给定组件间水平和垂直间距来构造
GridLayout。
箱式布局管理器
4,箱式布局管理器( javax.swing.BoxLayout )
箱式布局要比网格布局更灵活,它可以布置行式
布局 (BoxLayout.X_AXIS)或列式布局
(BoxLayout.Y_AXIS)
组件。
容器类 Box非常便于使用这种箱式布局,因为它
自带有一个 BoxLayout管理器。
它还有两个静态方法:分别用于创建一个水平或
垂直排列内容的容器
1) Static Box CreateHorizontalBox()
2) Static Box CreateVerticalBox()
支撑 (strut)和胶水 (glue)
Box类包含着用于生成一种称为支撑的不可
见组件的表态方法。这些支撑的用途是在
组件之间插入空间,既可以水平插入,也
可以垂直插入。
垂直支撑由静态方法 CreateVerticalBox()在
Box类中返回;而 CreateHorizontalBox()用
于生成一个水平支撑。
胶水是一种不可见组件,它的作用就是占
据 Box容器中的多余空间。
代表胶水的组件中通过调用一个 Box对象的
createGlue()方法生成。
网格组布局管理器
5,网格组布局管理器 (java.awt.GridBagLayout)
网格组布局是所有的布局管理器之母。
可以把网格组布局看作是没以限制的网格布
局。
在一个网格组布局中,行和列的尺寸均可以
改变,并且可以加入相邻单元格来适应更大
的组件。
组件不需要填充整个的单元区域,并且可以
指定单元格内的对齐方式。
网格组布局管理器
使用网格布局管理器的步骤如下:
1,创建一个 GridBagLayout类型的对象。
2,把此 GridBagLayout对象设成组件的布局管理器。
3,创建一个 GridBagConstraints对象。该对象指
定组件如何在网格组中布局。
4,对于每一个组件,填充 GridBagConstraints对
象。最后使用如下调用来添加组件和约束。
add(component,constrains)
网格组布局管理器示例
GridBagLayout layout = new GridBagLayout();
panel.setLayout(layout);
GridBagConstraints constraints = new
GridBagConstraints();
constraints.weightx = 100;
constraints.weighty = 100;
constraints.gridx = 0;
constraints.gridy = 2;
constraints.gridwidth = 2;
constraints.gridheight = 1;
contentPame.add(style,bold)
卡片布局管理器
卡片布局管理器 (java.awt.CardLayout)
卡片布局管理器会生成一个组件栈,在容器中把
组件一个摞在另一个之上,就像是一叠卡片。
添加到容器中的第一个组件将位于栈的顶部,最
后加入的将位于栈的底部。
在任何时刻只有位于最顶部的组件可见。
使用 CardLayout()来生成 CardLayout对象,或者
通过参数在构造器中指定水平和垂直间隙。
辽宁经济职业技术学院信息系
硕士、副教授 陈英
模型 — 视图 — 控制器设计模式
模型 —— 存储内容。
视图 —— 显示内容。
控制器 —— 处理用户输入。
每个 Swing都有三个要素:
1) 内容,例如按钮的状态(是否按下)。
2) 可视外观(颜色、尺寸等)。
3) 行为(对事件的反应)。
布局管理器概述
一个容器内的所有组件都由一个布局管理器进
行管理。
1) 流布局管理器( java.awt.FlowLayout)
它是面板的默认布局管理器。在一行上水平排列组
件,直到该行上没有足够的剩余空间为止,这时另
起一新行。默认处理是居中显示。
2) 边界布局管理器( java.awt.BorderLayout)
这是每个 JFrame的内容窗格的默认布局管理器。
可以选择组件放在内容窗格的中间、北边、南边、
东边或者西边。
java.awt.Container
setLayout(LayoutManger m)
为容器设置布局管理器。
java.awt.FlowLatout
? FlowLayout(int align)
? 根据指定的对齐方式( LEFT,CENTER或者
RIGHT)来构造一个新 FlowLayout 。
网格布局管理器
3,网格布局管理器( java.awt.GridLayout)
GridLayout(int rows,int cols)
构造一个具有 rows行,cols列的新的网络布
局管理器。
GridLayout(int rows,int cols,int hgap,int
vgap)
使用给定组件间水平和垂直间距来构造
GridLayout。
箱式布局管理器
4,箱式布局管理器( javax.swing.BoxLayout )
箱式布局要比网格布局更灵活,它可以布置行式
布局 (BoxLayout.X_AXIS)或列式布局
(BoxLayout.Y_AXIS)
组件。
容器类 Box非常便于使用这种箱式布局,因为它
自带有一个 BoxLayout管理器。
它还有两个静态方法:分别用于创建一个水平或
垂直排列内容的容器
1) Static Box CreateHorizontalBox()
2) Static Box CreateVerticalBox()
支撑 (strut)和胶水 (glue)
Box类包含着用于生成一种称为支撑的不可
见组件的表态方法。这些支撑的用途是在
组件之间插入空间,既可以水平插入,也
可以垂直插入。
垂直支撑由静态方法 CreateVerticalBox()在
Box类中返回;而 CreateHorizontalBox()用
于生成一个水平支撑。
胶水是一种不可见组件,它的作用就是占
据 Box容器中的多余空间。
代表胶水的组件中通过调用一个 Box对象的
createGlue()方法生成。
网格组布局管理器
5,网格组布局管理器 (java.awt.GridBagLayout)
网格组布局是所有的布局管理器之母。
可以把网格组布局看作是没以限制的网格布
局。
在一个网格组布局中,行和列的尺寸均可以
改变,并且可以加入相邻单元格来适应更大
的组件。
组件不需要填充整个的单元区域,并且可以
指定单元格内的对齐方式。
网格组布局管理器
使用网格布局管理器的步骤如下:
1,创建一个 GridBagLayout类型的对象。
2,把此 GridBagLayout对象设成组件的布局管理器。
3,创建一个 GridBagConstraints对象。该对象指
定组件如何在网格组中布局。
4,对于每一个组件,填充 GridBagConstraints对
象。最后使用如下调用来添加组件和约束。
add(component,constrains)
网格组布局管理器示例
GridBagLayout layout = new GridBagLayout();
panel.setLayout(layout);
GridBagConstraints constraints = new
GridBagConstraints();
constraints.weightx = 100;
constraints.weighty = 100;
constraints.gridx = 0;
constraints.gridy = 2;
constraints.gridwidth = 2;
constraints.gridheight = 1;
contentPame.add(style,bold)
卡片布局管理器
卡片布局管理器 (java.awt.CardLayout)
卡片布局管理器会生成一个组件栈,在容器中把
组件一个摞在另一个之上,就像是一叠卡片。
添加到容器中的第一个组件将位于栈的顶部,最
后加入的将位于栈的底部。
在任何时刻只有位于最顶部的组件可见。
使用 CardLayout()来生成 CardLayout对象,或者
通过参数在构造器中指定水平和垂直间隙。