容器可以调用setLayout(布局对象)方法来设置自己的布局

1.流水布局:FlowLayout

     布局策略:加入到容器中的组件将按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列,每一行中的组件都

                    居中对齐,组件之间的默认水平和垂直间隙是5个像素,组件的大小为默认的最佳大小

     构造方法:FlowLayout()

     常用方法:setHgap(int hgap):重新设置布局的水平间隙hgap

                    setVgap(int vgap):重新设置布局的垂直间隙vgap

                    public void setAlignment(int n):重新设置容器布局的对齐方式,n取值如下

                                                   FlowLayout.LEFT,FlowLayout.CENTER,FlowLayout.RIGHT

     注意:对于添加到使用这种布局的容器中的组件,组件调用setSize(int x,int y)方法设置的大小无效

2.边界布局:BorderLayout

     布局策略:使用这种布局的容器最多只能添加5个组件,并且必须使用以下方法将组件添加到容器中

                    public void add(组件名,int n):n决定将组件添加到容器中的哪个区域,取值如下:BorderLayout.NORTH,

                                                                BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.EAST,

                                                                BorderLayout.CENTER   

     注意:添加到某个区域的组件将占据整个区域,每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,则先前

              的组件将被后者替换掉

3.牌式布局:CardLayout

     布局策略:在同一时刻,只能从加入到容器中的组件中选出一个来显示,这个被显示的组件将占据所有的容器空间

     使用这种容器的步骤如下:

          A.创建一个CardLayout对象:CardLayout card=new CardLayout();

          B.将某个容器con的布局设置为该布局:con.setLayout(card);

          C.容器con调用以下方法将组件添加到容器中

                  add(String s,Component b)

                  b:组件名

                  s:组件的代号,不同的组件代号应互不相同

          D.CardLayout对象可以调用以下方法显示容器中的组件

                  show(容器名,组件代号):显示指定代号的组件

                  first(容器名):显示加入到容器中的第一个组件

                  last(容器名):显示最后一个组件

                  previous(容器名):显示上一个组件

                  next(容器名):显示下一个组件

4. 网格布局:GridLayout

     布局策略:把容器划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小格中;每个网格都是大小相同并且强

                    制组件与网格的大小相同                    

     构造方法:GridLayout(int m,int n)

                    m为行数,n为列数

5.盒式布局:BoxLayout

     该类在javax.swing.border包中,而不是在包java.awt中

     布局策略:加入到容器中的组件排列在一行(或一列),组件按照加入的先后的顺序从左向右(或从上向下)排列,容器的两端是剩余的空间

                    ,即使组件再多,也不会延伸到下一行(或下一列),这些组件可能会被缩小大小,紧缩在这一行(或一列)中

     构造方法:BoxLayout(容器名,int axis)

                    axis决定盒式布局是行型盒式布局还是列型盒式布局,取值如下

                    BoxLayout.X_AXIS:行型

                    BoxLayout.Y_AXIS:列型

     Box:它是一个盒式容器,其默认布局为盒式布局,而且不允许更改盒式容器的布局;它也是在包javax.swing中

              构造方法:createHorizontalBox():获取一个行型盒式布局的盒式容器 

                             createVerticalBox():获取一个列型盒式布局的盒式容器

              常用类方法:createHorizontalStruct(int width):设置盒式容器中组件的水平间隙width

                                createVerticalStruct(int height):设置盒式容器中组件的垂直间隙height

6.空布局:null

     当一个组件使用setBounds(int a,int b,int width,int height)方法将其定位在容器中的某个位置后,如果容器不使用空布局,

     则setBounds(int a,int b,int width,int height)方法将失效

 

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐