发表时间:2009-05-22
最后修改:2009-05-23
对于布局管理器,我了解的有FlowLayout,GridLayout,BorderLayout,CardLayout以及我比较欣赏的BoxLayout。
首先一个是空布局,所谓空布局,其实就是没有布局管理器,在这种情况下,你可以把每个控件的位置用坐标来设置它在窗体中的位置,这样自由度就非常大,但是相应你就要对每个控件都要精确定位,应该说非常麻烦。
可想而知,布局管理器的出现就是为了编程设计界面的方便。
1. FlowLayout,故名思议就是流布局管理器,既然叫做流,也就是说它布局的思想就是把所有的控件像流水一样一个一个朝着同一个方向进行排列的。对于一个FlowLayout对象,你可以通过setAlignment()方法来设置它流动的方向。
2. GridLayout,叫做网格布局管理器,很显然,它就是把窗体容器下所显示的地方分成横竖几行几列,像一个网格一样,一个网格可以对应一个控件或面板(Panel)。
BorderLayout就比较特别了,边框式布局管理器,它是把一个窗体分成东西南北中五块空间,我认为这种布局方式主要抽象于现在的很多软件,比如说eclipse,netbeans,微软的Visual Studio系列,Adobe系列软件等,这些软件在界面上总的来看,基本上是这种形式。
3. CardLayout,卡片布局管理器,它就像一个幻灯片,单击不同的按钮,相应位置将会有不同的变换,据说这种布局方式很少用,我个人认为用处也不太大,不清楚为什么会产生这种布局管理方式。
4. BoxLayout,盒式布局管理器,里面我只搞清楚了它的布局的思路,我为什么会比较欣赏呢,其实是因为它的布局方式跟div-css页面布局中浮动差不多,把一个一个的Box对象当作一个块(相当于div-css中的一个div),设置Box的方向(Vertical或是 Horizontal),然后在Box里面add一个个的控件,而控件之间的距离也是通过add方法加进去的。Box里面可以嵌套Box,就像div里面嵌套div一样。感觉这种布局方式会比较适合像我一样的编程人员。
当然不同的场合用不合的布局管理器,也可以混合使用,都是用来布局的,只要你觉得方便,爱怎么使用就怎么使用~