GUI编程技术布局管理.docx
《GUI编程技术布局管理.docx》由会员分享,可在线阅读,更多相关《GUI编程技术布局管理.docx(11页珍藏版)》请在冰豆网上搜索。
GUI编程技术布局管理
授课日期
授课班级
软件308-1
学期授课计划的章节顺序:
GUI编程技术-布局管理
授课目的与要求:
✓布局设计
✓BorderLayout
✓FlowLayout
✓CardLayout
✓GridLayout
✓BoxLayout
✓Null布局
课堂类型:
多媒体
授课主要教具:
多媒体、PPT
新课重点与难点:
✓布局设计
✓熟练掌握几大常用的布局管理器
课外作业(练习题或思考题):
任课教师:
易斌
GUI编程技术-布局管理
1.边界布局—BorderLayout
是窗口的默认布局
使用这种布局的容器,空间被分为东、西、南、北、中5个区域,由BorderLayout中的5个静态常量EAST、WEST、SOUTH、NORTH、
CENTER表示
添加组件时,使用表示方位的常量规定添加组件的位置add(b1,BorderLayout.SOUTH),也可以使用指定的字符串表示方位:
add(b1,"South")
构造方法
2.1BorderLayout()
2.2BorderLayout(int hgap,int vgap)
hgap水平间隔
vgap垂直间隔
使用BorderLayout布局管理器的步骤
3.1创建BorderLayout对象
3.2调用容器的setLayout()方法为容器设置布局管理器
3.3调用容器的add(组件,位置)方法向容器中添加组件
BorderLayout实例1
importjava.awt.*;importjava.applet.*;
publicclassE1extendsApplet
{
Buttonb1,b2,b3,b4;
TextAreata;
publicvoidinit()
{
BorderLayoutb=newBorderLayout(10,10);
//setLayout(b);
b1=newButton("button1");
b2=newButton("button2");
b3=newButton("button3");
b4=newButton("button4");
ta=newTextArea("center",5,10);
ta.setFont(newFont("",Font.BOLD,18));
add(ta,"Center");
add(b1,"East");add(b2,"West");
add(b3,"South");add(b4,"North");
}
}
2.FlowLayout布局管理器
流布局在一个left-to-right流中安排组件,常用于在面板中安排按钮。
它会从左到右的安排按钮直到在同一行中不可以再放置更多的按钮时为止。
每行都是中心对齐的。
构造方法
FlowLayout()
FlowLayout(intalign)
align:
FlowLayout.LEFT、FlowLayout.RIGHT、FlowLayout.CENTER
FlowLayout((intalign,inthgap,intvgap)
方法
getAilgnment()
setAlignment(intalign)
使用FlowLayout布局管理器的步骤
创建FlowLayout对象
容器调用setLayout()方法
容器添加组件
FlowLayout实例
在构造方法的前面添加职下代码:
FlowLayoutfl=newFlowLayout(FlowLayout.LEFT,10,10);
setLayout(fl);
3.CardLayout布局管理器
它将容器中的每个组件当作一个卡片来处理。
在某一时间,只有一个卡片是可见的,容器象一个装卡片的盒子。
1、构造方法:
(1)、publicCardLayout()
(2)、publicCardLayout(inthgap,intvgap):
水平间隙置于左右两侧,垂直间隙置于上下两侧。
2、CardLayout的方法
publicvoidfirst(Containerparent):
翻到容器的第一张卡片。
参数:
parent-进行布局的容器的名字。
publicvoidnext(Containerparent):
翻到指定容器的下一张卡片。
若当前可见的卡片是最后一张卡片,则翻到布局中的第一张卡片。
publicvoidprevious(Containerparent):
翻到指定容器的前一张卡片。
若当前可见的卡片是第一张卡片,则翻到布局中的最后一张卡片。
3、使用CardLayout管理器的步骤:
(1)创建CardLayout对象作为布局管理器
(2)使用容器的setLayout()方法为容器设置布局管理器
(3)调用容器的add()方法将组件加入容器
(4)调用CardLayout的方法显示某一个组件
CardLayout实例1
importjava.awt.*;importjava.applet.*;
importjava.awt.event.*;
publicclassE3extendsAppletimplementsActionListener
{
Buttonb1,b2,b3,b4;Panelp;CardLayoutcard;
publicvoidinit()
{
p=newPanel();
card=newCardLayout(20,20);
setBackground(Color.white);
p.setLayout(card);
p.setBackground(Color.red);
b1=newButton("第一张卡片");
b2=newButton("第二张卡片");
b3=newButton("第三张卡片");
b4=newButton("第四张卡片");
p.add("1",b1);p.add("2",b2);
p.add("3",b3);p.add("4",b4);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
add(p);
}
publicvoidactionPerformed(ActionEvente)
{card.next(p);}
}
4.GridLayout布局管理器
以矩形网格形式对容器中的组件进行布局。
容器被分成尺寸相等的矩形,一个组件放置在一个矩形中。
构造方法
GridLayout()
GridLayout(introws,intcols)
GridLayout(introws,intcols,inthgap,intvgap)
方法
getColumns()、setColumns(intcols)
getRows()、getRows(introws)
使用GridLayout管理器的步骤
创建GridLayout对象,并设置划分网络的行数和列数
调用容器的setLayout()方法为容器设置布局管理器
调用容器的add()方法向容器中添加组件
GridLayout布局管理器实例
importjava.awt.*;
publicclassE5extendsFrame
{
publicE5()
{
setSize(400,300);
setLocation(100,100);
setBackground(Color.CYAN);
GridLayoutgl=newGridLayout(2,3,5,5);
setLayout(gl);
add(newButton("按钮1"));
add(newButton("按钮2"));
add(newButton("按钮3"));
add(newButton("按钮4"));
add(newButton("按钮5"));
show();
}
publicstaticvoidmain(String[]args)
{
newE5();
}
}
5.BoxLayout—盒式布局
javax.swing包中的类,该包中还提供了一个Box类,该类的布局为盒式布局,而且不容许更改盒式容器的布局。
构造方法
publicBoxLayout(Containertarget,intaxis)
target-需要布置的容器
axis-布置组件时使用的轴。
它可以是以下值之一:
BoxLayout.X_AXIS、BoxLayout.Y_AXIS、BoxLayout.LINE_AXIS或BoxLayout.PAGE_AXIS
Box类的静态方法可以获得盒式布局的盒式容器
publicstaticBoxcreateHorizontalBox()
publicstaticBoxcreateVerticalBox()
盒式容器实例1
importjava.awt.*;importjavax.swing.*;
importjava.awt.event.*;
importjava.applet.*;
publicclassE6extendsApplet
{
BoxbaseBox,boxH,boxV;
publicvoidinit()
{
baseBox=Box.createHorizontalBox();
boxH=Box.createHorizontalBox();
boxV=Box.createVerticalBox();
for(inti=1;i<=5;i++)
{
boxH.add(newJButton("按钮"+i));
boxV.add(newJButton("按钮"+i));
}
baseBox.add(boxH);baseBox.add(boxV);
add(baseBox);
}
}
6.null空布局
未使用任何布局的容器
必须设置放置组件的大小和位置。
importjava.awt.*;
publicclassE8extendsFrame
{
TextFieldt1,t2,t3;
Buttonb1,b2,b3,b4;
publicE8()
{
setLayout(null);
setSize(500,400);
t1=newTextField(8);
t2=newTextField(8);
t3=newTextField(8);
b1=newButton("+");
b2=newButton("-");
b3=newButton("*");
b4=newButton("/");
t1.setLocation(20,90);
b1.setLocation(110,50);
b2.setLocation(110,80);
b3.setLocation(110,110);
b4.setLocation(110,140);
t2.setLocation(140,90);
t3.setLocation(230,90);
t1.setSize(80,20);
t2.setSize(80,20);
t3.setSize(80,20);
b1.setSize(20,20);
b2.setSize(20,20);
b3.setSize(20,20);
b4.setSize(20,20);
add(t1);add(t2);add(t3);add(b1);
add(b2);add(b3);add(b4);
show();
}
publicstaticvoidmain(String[]args)
{
newE8();
}
}
本章新课巩固要点:
✓Web窗体的组成
✓ASP.NET的功能
✓ASP.NET的工作原理
✓IIS的配置
✓ASP.NET应用程序创建的步骤
教研室主任审阅:
年月日
改进措施: