第十七讲十七讲
图形用户界面-布局管理器图形用户界面布局管理器
为了使生成的图形用户界面与操作
系统无关,为了使生成的图形用户界面与操作系统无关,
Java语言提供了布局管理器来管理组件在容器中语言提供了布局管理器来管理组件在容器中的布局,的布局,而不使用直接设置组件的位置和大小的方式。方式。每个容器都要一个布局管理器,每个容器都要一个布局管理器,容器中组件的定位模式都由它来决定。的定位模式都由它来决定。
2010年12月25日
三峡大学理雷国洪
1
五种布局管理器
Java语言中包含五种布局管理器(LayoutManager):FlowLayout:Panel和Applet的缺省布局管理器BorderLayout:Window、Dialog和Frame的缺省布局管理器GridLayoutCardLayoutGridBagLayout(较复杂,暂不
学习)
2010年12月25日
三峡大学理雷国洪
2
安排组件的位置和大小
容器中的布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件的这些属性。如果试图使用Java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被布局管理器覆盖。如果用户确实需要亲自设置组件大小或位置,则应取消该容器的布局管理器,方法为:setLayout(null);
2010年12月25日
三峡大学理雷国洪
3
1FlowLayout
FlowLayout布局方式是将组件一排一排地依次放置,它自动调用组件的getPreferredSize()方法,使用组件的最佳尺寸来显示组件。当容器被重新设置大小后,则布局也会随之发生改变:各组件的大小不变,但相对位置会发生变化。是Panel,Applet的缺省布局管理器。
2010年12月25日
三峡大学理雷国洪
4
FlowLayout类有三种构造方法:
publicFlowLayout()使用缺省居中对齐方式,组件间水平和竖直间距为5个象素。publicFlowLayout(intalignment)使用指定的对齐方式(FlowLayout.LEFT,FlowLayout.RIGHT,FlowLayout.Center),水平和竖直间距为缺省值5象素。publicFlowLayout(intalignment,inthorizontalGap,intverticalGap)使用指定的对齐方式,水平和竖直间距也为指定值。
setLayout(newFlowLayout(FlowLayout.RIGHT,20,40));setLayout(newFlowLayout(FlowLayout.LEFT));setLayout(newFlowLayout());
2010年12月25日
三峡大学理雷国洪
5
2BorderLayout
Window,Frame和Dialog的缺省布局管理器。BorderLayout布局管理器包括5个区域:North,South,East,West和Center。importjava.awt.*;publicclassbuttonDir{publicstaticvoidmain(Stringargs[]){Framef=newFrame("BorderLayout");f.setLayout(newBorderLayout());
2010年12月25日三峡大学理雷国洪6
f.add("North",newButton("North"));f.add("South",newButton("South"));f.add("East",newButton("East"));f.add("West",newButton("West"));f.add("Center",newButton("Center"));f.setSize(200,200);f.setVisible(true);}}
2010年12月25日
三峡大学理雷国洪
7
2010年12月25日
三峡大学理雷国洪
8