setLayout(布局對象);  聲明布局格式的方式   如:

setLayout(new FlowLayout());

1. FlowLayout布局

FlowLayout布局是JPanel 的默認布局,組建按照加入的先后順序從左到右排列,一行排滿之后就轉到下一行繼續從左到右排列 ,每一行都居中排列,水平和垂直的間距都是5個像素,組件設置大小用  set.PreferredSize(Dimension preferredSize)

例如:

button.setPreferredSize(new Dimension(20,20));

重新設置布局方式: setAlignment(int aligin);   aligin 的取值為 FlowLayout.LEFT,FlowLayout.RIGHT,FlowLayout.CENTER   ;  重新設置水平和垂直的間隙  setHgap(int hgap); setVgap(int vgap);

2.BorderLayout布局

Window型容器的默認布局(JFrame,JDialog)   容器空間簡單的划分為東南西北中5個區域,中間的區域最大 ,由BorderLayout 中的靜態變量WEST,EAST,SOUTH,NORTH,CENTER表示區域 .有BorderLayout布局的容器con  例:

con.add(b,BorderLayout.EAST);

添加到某一個區域的組件占有整個區域,再添加進來,舊的就會被替換掉 ,只能添加5個組件,5個以上的話使用其他的布局或者容器嵌套.

3.CardLayout布局

組件被層疊的放入容器,最先加入的在最上面,同一時刻容器只能從這些組件中選一個來顯示,容器調用add(String s,Component b);的方式將組件b加入容器  s為代號和組件沒有必然關系,不同的組件代號不能相同

調用show(Component con,s)的方法顯示代號為s的容器  card.show(con,s);    card.first(con) card.next(con),card.last(con) ,card.previous(con)  分別顯示容器con的第一個,下一個,最后一個,上一個 組件

4.GirdLayout布局

把容器分成若干行和若干列的網格區域    構造方法  GirdLayout(int m,int n); 創建布局對象,指定行和列

GridLayout gy =new GridLayout(10,12);

可以添加m*n個組件   用add(Component c)將組件添加進入   ,從第一行第一個開始到最后一行最后一個  (每個網格強制相等)

5.BoxLayout  盒式布局

Box  創建的容器是盒式容器 默認布局是盒式布局並且不允許修改

盒式布局構造方法 BoxLayout(Container con,int axis);axis 的有效值  BoxLayout.X_AXIS, BoxLayout.Y_AXIS.決定盒式布局是行型還是列型    行(列)型組件再多也不會延伸到下一行 (列) ,沿着同一水平線或垂直線

Box 類調用靜態方法 createHorizontalBox()   獲得一個行型的盒式布局的盒式容器

Box類 調用靜態方法 createVerticalBox()  獲得一個列型的盒式布局的盒式容器

Box 調用靜態方法 createVerticalStrut(int height)    createHorizontalBox(int width)   得到不可見的Strut對象 設置水平(垂直)的Box之間的間距

6.null 布局

空布局可以准確的定位組件在容器中的位置和大小 setBounds(int a,int b,int width,int height)  設置位置和本身大小 , a,b 是組件在容器p中的坐標


版权声明:本文为weixin_31440829原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_31440829/article/details/114831974