资源描述:
《java中的布局管理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JAVA的界面布局原理JAVA的界面布局原理:因为Java是跨平台语言,使用绝对坐标显然会导致问题,即在不同平台、不同分辨率下的显示效果不一样。Java为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的所有组件安排给一个“布局管理器”负责管理,如:排列顺序,组件的大小,位置等,当窗口移动或调整大小后组件如何变化等功能授权给对应的容器布局管理器来管理,不同的布局管理器使用不同算法和策略,容器可以通过选择不同的布局管理器来决定布局。 Java中一共有6种布局管理器,通过使用6种布局管理器组合,能够设计出复杂的界面,而且
2、在不同操作系统平台上都能够有一致的显示界面。6种布局管理器分别是BorderLayout、BoxLayout、FlowLayout、GirdBagLayout、GirdLayout和CardLayout。其中CardLayout必须和其他5种配合使用,不是特别常用的。每种界面管理器各司其职,都有各自的作用。 CardLayout(卡式布局) CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都
3、可以利用Panel来实现复杂的用户界面.布局管理器(CardLayout)就象一副叠得整整齐齐的扑克牌一样,有54张牌,但是你只能看见最上面的一张牌,每一张牌就相当于布局管理器中的每一层.其实现过程如下: 首先,定义面板,为个个面板设置不同的布局,并根据需要在每个面板中放置组件: panelOne.setLayout(newFlowLayout); panelTwo.setLayout(newGridLayout(2,1)); 再设置主面板. Car
4、dLayoutcard=newCardLayout(); panelMain.setLayout(card); 下一步将开始准备好的面板添加到主面板 panelMain.add("redpanel",panelOne); panelMain.add("bluepanel",panelOne); add()方法带有两个参数,第一个为String类型用来表示面板标题,第二个为Panel对象名称. 完成以上步骤以后,必须给用户提供在卡片
5、之间进行选择的方法.一个常用的方法是每张卡片都包含一个按钮.通常用来控制显示哪张面板.actionListener被添加到按钮..actionPerformed()方法可定义显示哪张卡片.: card.next(panelMain); //下一个 card.previous(panelMain); //前一个 card.first(panelMain); //第一个 card.last(panelMain);
6、 //最后一个 card.show(panelMain,"redpanel");//特定面板BorderLayout布局管理器:BorderLayout也是一种非常简单的布局策略,它把容器内的空间简单地划分为东、西、南、北、中无个区域,没加入一个组件都应该指明把这个组件加在哪个区域中。BorderLayout是顶层容器(JFrame,JDialog,和JApplet)的默认布局管理器。有五个位置组件: 这个界面最多只能显示5个控件。加入控件的时候,可以指定加入的方位,默认的情况是加入到中间。在
7、BorderLayout中整理尺寸是,四周的控件会被调整,调整会按照布局管理器的内部规则计算出应该占多少位置,然后中间的组件会占去剩下的空间。BorderLayout是Window,Frame和Dialog的缺省布局管理器.BorderLayout布局管理器把容器分成5个区域:North,South,East,West和Center,每个区域只能放置一个组件.在使用BorderLayout的时候,如果容器的大小发生变化,其变化规律为:组件的相对位置不变,大小发生变化.例如容器变高了,则North、South区域不变,West、
8、Center、East区域变高;如果容器变宽了,West、East区域不变,North、Center、South区域变宽.不一定所有的区域都有组件,如果四周的区域(West、East、North、South区域)没有组件,则由Center区域去补充,但是如果Center区域没