几个基本的layout(一)

Flow layout:

派生于java.awt.flowlayout。将物件由左到右按顺序放置在容器当中,物件大小按照其原有定义。

Border layout:

派生于java.awt.borderlayout,是window预设的layout manager,由于frame与dialog类别都继承于window类,因此继承frame的java视窗程式,其预设layout manager亦为border layout。

Border layout将容器分为东、西、南、北及中央五个区域,每一个区域只能放置一个物件。与flow layout不同,他会按照视窗的大小自动更改物件的大小。

还需要注意的是:

位于东西方向的物件,仅会向垂直方向放大缩小。

位于南北方向的物件,仅会向水平方向放大缩小。

位于中央的物件,会向两个方向同时拉伸缩小。

Card layout:

派生于java.awt.cardlayout,物件将以卡片的方式,分层至于容器中,并以此仅允许显示一层,以cardlayout配置物件时候,需针对每一层设定一个名称,以便依次名称显示该层物件。

Grid layout:

Grid layour的类别为java.awt.gridlayout,grid的意思为 格子,它依照不同的行列数,将容器分成数个大小相同的区域,如同border layout一般,所配置的物件大小会因视窗或java applet大小的改变而有所改变,同时向垂直于水平方向放大或缩小,物件放置顺序为从左到右,由上而下,直到填满所定义的行列格数为止。

Grid bag layout:

其为java AWT为应对复杂度较高的物件配置所提供的layout manager  与之前所介绍的layout manager的差别在于,grid bag layout将容器分割为数个小单元,而其所配置的物件,可自行定义其水平与垂直的加权比例,由此以决定所占满的单元的多少,因此在grid bag layout中,物件的大小不需要一致,而当容器大小改变的时候,也可依照其所定义的加权决定其变更的大小幅度。

虽然grid bag layout较为弹性,但相对地在使用上也较为困难,除了使用java.awt.gridbaglayout类别之外,另外需要配合java.awt.gridbagconstraints类别,设定各个物件的配置方式与限制。


你可能感兴趣的:(java,java,java,manager,layout,border,applet)