GUI之布局管理器(1)

来源:互联网 发布:linux rps是什么意思 编辑:程序博客网 时间:2024/06/11 19:19
flowLayout流式布局管理器

BorderLayout边界布局管理器

GridLayout网络布局管理器

CardLayout卡片布局管理器

CridBagLayout网络布局管理器


   1.容器中的组件布局由布局管理器控制。每个Container(比如一个Pane或一个Frame)
都有一个它相关的缺省布局管理器,panel容器默认的是FlowLayout,Frame容器默认的是
BorderLayout,我们可以通过调用setLayout()来改变布局管理器。
   2.我们可以通过设置空布局管理器,来控制组件的大小和位置。可以调用setLayout(null).
   3.在设置空布局管理器后,必须对所有的组件调用setLocation(),setSize()或setBounds(),
将它们定位在容器中。   



   (1)测试流式管理器

package com.company.ssm.crm.pojo;

import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;

public class FlowLayoutDom {
    public static void main(String[] args) {
        
           MyFram3 myFram3 = new  MyFram3("FlowLayout");
          //初始化显示窗体
           myFram3.init();
    }
}

class MyFram3 extends Frame{
    
    public MyFram3(String title){
         super(title);
    }
    
    public void init(){
        //创建流失布局管理器对象
        FlowLayout layout = new FlowLayout(FlowLayout.LEFT,50,30);//FlowLayout.LEFT流失左对其,水平50,
        //将默认布局创建成自己的流式布局
        this.setLayout(layout);
        //设置背景颜色
        this.setBackground(Color.BLUE);
        //添加按钮
        this.add(new Button("btn1"));
        this.add(new Button("btn2"));
        this.add(new Button("btn3"));
        this.add(new Button("btn4"));
        this.add(new Button("btn5"));
        this.add(new Button("btn6"));
        this.add(new Button("btn7"));
        this.add(new Button("btn8"));
        //设置当前窗体大小
        this.setSize(3000, 2000);
        //设置显示窗口 默认是不可见的
        this.setVisible(true);
        
        
    }
    
}

(2)BorderLayout边界布局管理器 测试

package com.company.ssm.crm.pojo;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
 
import java.awt.Frame;

public class Borlayout {
 

    

    public static void main(String[] args) {
        
           MyFram4 myFram4 = new  MyFram4("BorderLayout");//括号内指定标题
          //初始化显示窗体
           myFram4.init();
    }
}

class MyFram4 extends Frame{
    
    public MyFram4(String title){
         super(title);
    }
    
    public void init(){
        
        //设置背景颜色
        this.setBackground(Color.BLUE);
        //添加按钮
        this.add(new Button("btn1"),BorderLayout.EAST);//BorderLayout.EAST后跟常量来标明位置
        this.add(new Button("btn2"),BorderLayout.WEST);
        this.add(new Button("btn3"),BorderLayout.NORTH);
        this.add(new Button("btn4"),BorderLayout.SOUTH);
        this.add(new Button("btn5"),BorderLayout.CENTER);
        
        //设置当前窗体大小
        this.setSize(300, 200);
        //设置显示窗口 默认是不可见的
        this.setVisible(true);
        
        
    }
    
}





(3)GridLayout网络布局管理器测试


package com.company.ssm.crm.pojo;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
 
import java.awt.Frame;
import java.awt.GridLayout;

public class GridLayoutes {
 

    

    public static void main(String[] args) {
        
           MyFram4 myFram4 = new  MyFram4("GridLayout");//括号内指定标题
          //初始化显示窗体
           myFram4.init();
    }
}

class MyFram4 extends Frame{
       
    
    public MyFram4(String title){
         super(title);
    }
    
    public void init(){
        
        //创建网格布局管理器对象 ,并指明3行2列
        GridLayout gridLayout = new GridLayout(3,2);
        //将当前的布局管理器设置为网格管理器
         this.setLayout(gridLayout);
        
        //设置背景颜色
        this.setBackground(Color.BLUE);
        //添加按钮
        this.add(new Button("btn1"),BorderLayout.EAST);//BorderLayout.EAST后跟常量来标明位置
        this.add(new Button("btn2"),BorderLayout.WEST);
        this.add(new Button("btn3"),BorderLayout.NORTH);
        this.add(new Button("btn4"),BorderLayout.SOUTH);
        this.add(new Button("btn5"),BorderLayout.CENTER);
        
        //设置当前窗体大小
        this.setSize(300, 200);
        //设置显示窗口 默认是不可见的
        this.setVisible(true);
        
        
    }
    
}



 (4) CardLayout卡片布局管理器测试

  

   package com.company.ssm.crm.pojo;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.CardLayout;
import java.awt.Color;
 
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;

public class CardLayoutes {
 

    

    public static void main(String[] args) {
        
           MyFram6 myFram6 = new  MyFram6("CardLayout");//括号内指定标题
          //初始化显示窗体
           myFram6.init();
    }
}

class MyFram6 extends Frame{
    
    //声明面板
    private Panel card_panel = null;//此面板放入卡片管理器
    private Panel ctrol_panel = null;//此面板放入按钮
    
    private CardLayout cardLayout = null;//声明卡片布局管理器
    private FlowLayout flowLayout = null;//声明流式布局管理器
    
    private Label b_1,b_2,b_3,b_4;//声明标签控件
    private TextField tf_content;//声明文本框控件
    
    private Button btn1,bth2,bth3,bth4;
    
    
    public MyFram6(String title){
         super(title);
    }
    
    public void init(){
        
        card_panel = new Panel();//创建面板对象
        ctrol_panel = new Panel();
        cardLayout = new CardLayout();
        flowLayout = new FlowLayout();
        
        card_panel.setLayout(cardLayout);//设置指定卡片布局管理器
        ctrol_panel.setLayout(flowLayout);//设置指定流式布局管理器
        
        //申明创建4个标签和一个文本控件
        b_1=new Label("page1content",Label.CENTER);//Label.CENTER对其方式
        b_2=new Label("page2content",Label.CENTER);        
        tf_content = new TextField();//    编辑文本框
        b_3=new Label("page3content",Label.CENTER);
        b_4=new Label("page4content",Label.CENTER);
        
        //把4个标签控件和一个文本框控件添加到card_panel这个容器中
        card_panel.add(b_1);
        card_panel.add(b_2);
        card_panel.add(tf_content);
        card_panel.add(b_3);
        card_panel.add(b_4);
        
        
        
        //构建4个按钮对象
        
        btn1 = new Button("onepage");
        bth2 = new Button("fristpage");
        bth3= new Button("nextpage");
        bth4 = new Button("lastpage");
        
        //把按钮添加到控制流式面板
        ctrol_panel.add(btn1);
        ctrol_panel.add(bth2);
        ctrol_panel.add(bth3);
        ctrol_panel.add(bth4);
        
        
        
        
        
        
        
        this.add(card_panel,BorderLayout.CENTER);//放入窗体(Frame)的中部
        this.add(ctrol_panel,BorderLayout.SOUTH);//放入窗体(Frame)的底部
    
       
        this.setSize(400,300);//设置窗体的大小
        this.setVisible(true);//窗体是否显示
    }
    
}


原创粉丝点击