FlowLayout,BorderLayout,boxLayout 布局的应用

FlowLayout:

流式布局,随着JFrame的大小而流动  流布局用于安排有向流中的组件,这非常类似于段落中的文本行

例如:

Java代码 
  1. package 三种布局;  
  2. import javax.swing.*;  
  3.   
  4. import java.awt.*;  
  5. public class Flow  extends JFrame{  
  6.     public static void main(String[] args) {  
  7.         Flow lay = new Flow();  
  8.         lay.go();  
  9.         
  10.     }  
  11.       
  12.     public void go(){  
  13.         //this.setBackground(Color.RED);  
  14.         this.setTitle("Flowlayout布局");  
  15.         this.setSize(400,200);  
  16.         this.setDefaultCloseOperation(3);  
  17.                //设置布局  
  18.         FlowLayout layout = new FlowLayout();  
  19.         this.setLayout(layout);  
  20.           
  21.         Label label = new Label("密码框");  
  22.         this.add(label);  
  23.         JTextField field = new JTextField(20);  
  24.         this.add(field);  
  25.           
  26.         Label labe = new Label("密码");  
  27.         this.add(labe);  
  28.         JTextField fiel = new JTextField(20);  
  29.         this.add(fiel);  
  30.       
  31.          this.setVisible(true);   
  32.           
  33.     }  
  34.   
  35. }  
  36.   
  37. /* 
  38. 运行结果 在下面的Fow1  图片 
  39.    当把fow1 放大时  结果为fow2图片 
  40.  
  41. */  

 

 

BorderLayout:

这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTHSOUTHEASTWESTCENTER。当使用边框布局将一个组件添加到容器中时,要使用这五个常量之一,

Java代码 
  1. import java.awt.BorderLayout;  
  2. import java.awt.Color;  
  3. import java.awt.Container;  
  4. import java.awt.Font;  
  5. import javax.swing.*;  
  6. /** 
  7.  * 定义一个border的布局 
  8.  * @author Administrator 
  9.  * 
  10.  */  
  11. public class border extends JFrame{  
  12.   
  13.     public static void main(String[] args) {  
  14.         border border1 = new border();  
  15.         border1.go();  
  16.     }  
  17.       
  18.     public void go(){  
  19.         //在设置五个按钮  
  20.         JButton east = new JButton("East");  
  21.         JButton west = new JButton("west");  
  22.         JButton north = new JButton("north");  
  23.         JButton south = new JButton("south");  
  24.         JButton center = new JButton("center");  
  25.           
  26.         //将按钮分别添加到五个方向  
  27.         Container c = this.getContentPane();  
  28.         c.add(BorderLayout.EAST,east);  
  29.         Container c1 =this.getContentPane();  
  30.         c1.add(BorderLayout.WEST,west);  
  31.         this.getContentPane().add(BorderLayout.NORTH,north);  
  32.         this.getContentPane().add(BorderLayout.SOUTH,south);  
  33.         this.getContentPane().add(BorderLayout.CENTER,center);  
  34.         //设置字体大小  
  35.         Font bigFont = new Font("serif",Font.BOLD,20);  
  36.         east.setFont(bigFont);  
  37.         Font bigFont1 = new Font("serif",Font.BOLD,20);  
  38.         west.setFont(bigFont1);       
  39.         Font bigFont2 = new Font("serif",Font.BOLD,20);  
  40.         north.setFont(bigFont2);          
  41.         Font bigFont3= new Font("serif",Font.BOLD,20);  
  42.         south.setFont(bigFont3);  
  43.         Font bigFont4 = new Font("serif",Font.BOLD,20);  
  44.         center.setFont(bigFont4);  
  45.           
  46.           
  47.         this.setSize(400,400);  
  48.         this.setDefaultCloseOperation(3);  
  49.           
  50.           
  51.           
  52.         this.setVisible(true);  
  53.     }  
  54. }  

 

BoxLayout:

允许垂直或水平布置多个组件的布局管理器。这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列。

 

用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLayout,但没那么复杂。该图显示了两个水平排列的面板,每个面板都包含 3 个垂直排列的组件。

BoxLayout 管理器是用 axis 参数构造的,该参数指定了将进行的布局类型。有四个选择:

X_AXIS:从左到右水平布置组件。
Y_AXIS:从上到下垂直布置组件。

 

Java代码 
  1. import java.awt.BorderLayout;  
  2. import java.awt.Color;  
  3. import java.awt.Container;  
  4.   
  5. import javax.swing.*;  
  6.   
  7. public class boxlayout {  
  8.   
  9.     public static void main(String[] args) {  
  10.         // TODO Auto-generated method stub  
  11.         boxlayout layout = new boxlayout();  
  12.         layout.go();  
  13.     }  
  14.       
  15.     public void go(){  
  16.         JFrame frame = new JFrame();  
  17.         JPanel panel = new JPanel();  
  18.         panel.setBackground(Color.RED);  
  19.         //设盒子的布局  
  20.         BoxLayout layout  = new BoxLayout(panel, 0) ;  
  21.         panel.setLayout(layout);  
  22.         //panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));  
  23.           
  24.         JButton button = new JButton("点击");  
  25.         JButton button1 = new JButton("ok");  
  26.         panel.add(button);  
  27.         panel.add(button1);  
  28.           
  29.         //容器初始化,添加组件  
  30.         frame.getContentPane().add(BorderLayout.EAST,panel);  
  31.                 //Contariner c = frame.getContentPane();  
  32.                 //c.add(<span style="font-size: 1em; line-height: 1.5;">BorderLayout.EAST,panel</span><span style="font-size: 1em; line-height: 1.5;">);</span>  
Java代码 
  1.     frame.setSize(300,300);  
  2.     frame.setVisible(true);  
  3. }  

布局与布局之间可以嵌套

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值