1、GUI编程技术布局管理授课日期授课班级软件308-1学期授课计划的章节顺序:GUI编程技术-布局管理授课目的与要求: 布局设计 BorderLayout FlowLayout CardLayout GridLayout BoxLayout Null布局课堂类型:多媒体授课主要教具:多媒体、PPT新课重点与难点: 布局设计 熟练掌握几大常用的布局管理器课外作业(练习题或思考题):任课教师:易斌GUI编程技术-布局管理 1. 边界布局BorderLayout是窗口的默认布局使用这种布局的容器,空间被分为东、西、南、北、中5个区域,由BorderLayout中的5个静态常量EAST、WEST、SOU
2、TH、NORTH、 CENTER表示添加组件时,使用表示方位的常量规定添加组件的位置add(b1,BorderLayout.SOUTH),也可以使用指定的字符串表示方位:add(b1, South) 构造方法2.1 BorderLayout()2.2 BorderLayout(inthgap, intvgap) hgap水平间隔vgap垂直间隔 使用BorderLayout布局管理器的步骤3.1 创建BorderLayout对象3.2 调用容器的setLayout()方法为容器设置布局管理器3.3 调用容器的add(组件,位置)方法向容器中添加组件BorderLayout实例1import j
3、ava.awt.*;import java.applet.*;public class E1 extends Applet Button b1,b2,b3,b4; TextArea ta; public void init() BorderLayout b=new BorderLayout(10,10); / setLayout(b); b1=new Button(button1); b2=new Button(button2); b3=new Button(button3); b4=new Button(button4); ta=new TextArea(center,5,10); ta.s
4、etFont(new Font(,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(int align)align:FlowLayout.LEFT、 FlowLayout.RIGHT、 FlowLayout.CENT
5、ERFlowLayout(int align, int hgap, int vgap)方法getAilgnment()setAlignment(int align)使用FlowLayout布局管理器的步骤创建FlowLayout对象容器调用setLayout()方法容器添加组件FlowLayout实例在构造方法的前面添加职下代码:FlowLayout fl=new FlowLayout(FlowLayout.LEFT,10,10);setLayout(fl);3. CardLayout布局管理器它将容器中的每个组件当作一个卡片来处理。在某一时间,只有一个卡片是可见的,容器象一个装卡片的盒子。1
6、、构造方法: (1)、public CardLayout() (2)、public CardLayout(int hgap,int vgap) :水平间隙置于左右两侧,垂直间隙置于上下两侧。2、CardLayout的方法public void first(Container parent):翻到容器的第一张卡片。 参数: parent - 进行布局的容器的名字。 public void next(Container parent):翻到指定容器的下一张卡片。若当前可见的卡片是最后一张卡片,则翻到布局中的第一张卡片。public void previous(Container parent):翻
7、到指定容器的前一张卡片。若当前可见的卡片是第一张卡片,则翻到布局中的最后一张卡片。 3、使用CardLayout管理器的步骤: (1)创建CardLayout对象作为布局管理器 (2)使用容器的setLayout()方法为容器设置布局管理器 (3)调用容器的add()方法将组件加入容器 (4)调用CardLayout的方法显示某一个组件CardLayout实例1import java.awt.*;import java.applet.*;import java.awt.event.*;public class E3 extends Applet implements ActionListene
8、r Button b1,b2,b3,b4;Panel p;CardLayout card; public void init() p=new Panel(); card=new CardLayout(20,20); setBackground(Color.white); p.setLayout(card); p.setBackground(Color.red); b1=new Button(第一张卡片); b2=new Button(第二张卡片); b3=new Button(第三张卡片); b4=new Button(第四张卡片); p.add(1,b1);p.add(2,b2); p.ad
9、d(3,b3);p.add(4,b4); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); add(p); public void actionPerformed(ActionEvent e) card.next(p); 4. GridLayout布局管理器以矩形网格形式对容器中的组件进行布局。容器被分成尺寸相等的矩形,一个组件放置在一个矩形中。构造方法GridLayout()GridLayout(int rows,int
10、 cols)GridLayout(int rows,int cols,int hgap,int vgap)方法getColumns()、setColumns(int cols)getRows()、getRows(int rows)使用GridLayout管理器的步骤创建GridLayout对象,并设置划分网络的行数和列数调用容器的setLayout()方法为容器设置布局管理器调用容器的add()方法向容器中添加组件GridLayout布局管理器实例import java.awt.*;public class E5 extends Frame public E5() setSize(400,30
11、0); setLocation(100,100); setBackground(Color.CYAN) ; GridLayout gl=new GridLayout(2,3,5,5); setLayout(gl); add(new Button(按钮1); add(new Button(按钮2); add(new Button(按钮3); add(new Button(按钮4); add(new Button(按钮5); show(); public static void main(Stringargs) new E5(); 5. BoxLayout盒式布局javax.swing包中的类,该
12、包中还提供了一个Box类,该类的布局为盒式布局,而且不容许更改盒式容器的布局。构造方法public BoxLayout(Container target, int axis)target - 需要布置的容器axis - 布置组件时使用的轴。它可以是以下值之一:BoxLayout.X_AXIS、BoxLayout.Y_AXIS、BoxLayout.LINE_AXIS 或 BoxLayout.PAGE_AXIS Box类的静态方法可以获得盒式布局的盒式容器public static Box createHorizontalBox()public static Box createVerticalB
13、ox()盒式容器实例1import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.applet.*;public class E6 extends Applet Box baseBox,boxH,boxV; public void init() baseBox=Box.createHorizontalBox(); boxH=Box.createHorizontalBox(); boxV=Box.createVerticalBox(); for (int i = 1; i=5; i+) boxH.add(n
14、ew JButton(按钮+i); boxV.add(new JButton(按钮+i); baseBox.add(boxH);baseBox.add(boxV); add(baseBox); 6. null空布局未使用任何布局的容器必须设置放置组件的大小和位置。import java.awt.*;public class E8 extends Frame TextField t1,t2,t3; Button b1,b2,b3,b4; public E8() setLayout(null); setSize(500,400); t1=new TextField(8); t2=new TextF
15、ield(8); t3=new TextField(8); b1=new Button(+); b2=new Button(-); b3=new Button(*); b4=new Button(/); 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
16、(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(); public static void main(Stringargs) new E8(); 本章新课巩固要点: Web 窗体的组成 ASP.NET的功能 ASP.NET的工作原理 IIS的配置 ASP.NET 应用程序创建的步骤 教研室主任审阅: 年 月 日改进措施:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1