在Java中组件的摆放位置和大小事由布局管理器来决定的,容器对布局管理器的特定实例保持着一个引用,当容器要定位一个组件的时候,它将调用布局管理器来决定。我们在设置组件的大小的时候,也是通过这个完成的。
在Java中给我提供了五种布局管理器。BoraderLayout边界布局管理器,FlowLayout浮动布局管理器,GridLayout网格布局管理器,CardLayout卡片布局管理器,GridBagLayout布局管理器。
在Java中FlowLayout是Panel容器的默认管理器,其组件的放置规律是从上到下,从左到又。BoarderLayout是Window、Frame和Dialog的默认布局管理器。
下面我们先说一下BoarderLayout布局管理器。下面有张图片:
通过上面的图片我们可以看出来,BoarderLayout将容器分成了五个区域:North、South、East、West和Center。每一个区域可以用来放置一个组件。如果只有一个组件,默认的是放置在Center中。下面我们看一个例子程序:
在上面的程序中,我们可以看到在我们创建Frame后必须设置一些参数,这些参数在程序中注释已经显示其作用了,但是Frame的设置并不只有这些,读者可以自己根据Java帮助文档详细的学习。
在上面程序执行完成之后就是按照第一张图片给的位置摆放这些按钮的,但是这些按钮之间没有空隙,有时候我们想让按钮之间有空隙,我们可以将14行的代码注释取消,表示的产生2个像素的空隙。
FlowLayot布局管理器,是所有的组件浮动的填充在容器中,我们看一个例子:
上面程序的运行结果如下图:
如果我们改变窗口的大小,相应的组件的位置也会发生改变,读者可以自己试一下。对于FlowLayout还提供了按钮的对齐方式,例如我们程序中的第15行代码,就是设置了左对齐的方式,如果我们取消注释,这些按钮将会从左边依次摆放。
GridLayout布局管理器,将容器分成网格。我们创建GridLayout布局管理器对象的时候需要传递两个参数,分别代表行列。下面我们也看一个例子:
程序运行结果如下:
我们同样也可以给其中的按钮设置空隙,第15行代码就是设置空隙。
对于CardLayout布局管理器默认显示的是第一个组件,我们可以利用事件处理来设置翻牌的效果,当我们点击按钮的时候显示另一个按钮,这里我们还没有写事件,这里先不介绍。后面文章已经补充,参看点击打开链接
对于最后一个布局管理器,推荐大家看看下面的文章http://www.cnblogs.com/willmove/archive/2007/08/14/855033.html。
写的不好,如果哪里错了还请指出。