zoukankan      html  css  js  c++  java
  • 容器布局【绝对布局,流布局,边界布局,网格布局】

    1.【绝对布局】也称为【null布局】   null布局出现就是在容器中使用坐标控制组件的位置

    (x坐标)0-----n:宽|

                          | 单位:像素

    (y坐标)0-----n:高|/

    优势:容器中的按钮可以放在任意的位置

    劣势:窗口大小改变都不会改变按钮位置,如想改变需通过代码进行改变

    //导入Java类
    import javax.swing.*;
    import java.awt.*;
    public class Demo extends JFrame{
      public Demo(){
         setBounds(100,100,100,150);
         setVisible(true);
         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
         
         Container c=getContentPane();
         c.setLayout(null);//设置流体布局  将容器布局设置为:绝对布局
         JButton btn1=new JButton("按钮1"),btn2=new JButton("按钮2");//创建‘按钮1,按钮2’的实例化对象 创建两个按钮
         btn1.setBounds(10,30,80,30);//设置‘按钮1’的坐标及大小
         btn2.setBounds(60,70,100,20);//设置‘按钮2’的坐标及大小
         c.add(btn1);
         c.add(btn2);
    }
    }
    public static void main(String[] args){
      new Demo();//可保存运行
    }

    2.流布局】----- FlowLayout

    * 下图为默认居中对齐

    //导入Java类
    import javax.swing.*;
    import java.awt.*;
    public class Demo extends JFrame{
         public Demo(){
            setVisible(true);
            setBounds(100,100,300,200);
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
            Container c=getContentsPane();
            c.setLayout(new FllowLayout());//给容器设置流布局   可设置流布局的位置和按钮间距
           // 流布局()内无参数时默认为居中对齐
    //c.setLayout(new FllowLayout(FllowLayout.RIGHT));//右对齐
    //// c.setLayout(new FlowLayout(FlowLayout.RIGHT,20,20));//右对齐,控件间距20

    for(int i=0;i<10;i++){//添加for()循环语句 c.add(new JButton("按钮"+i));//给循环语句添加循环按钮组件 } setVisible(true); } public static void main(String[] args){ new Demo(); } }

     3.【边界布局】  边界布局BorderLayout, 将容器划分为中,东,西,南,北五个区域,默认的添加在五个区域中,当同一个区域同时出现相同的控件,则旧控件会被新控件覆盖.

    导入Java类
    import javax.swing.*;
    import java.awt.*;
    public class Demo extends JFrame{
             public Demo(){
             setVisible(true);
             setBounds(100,100,350,200);
             setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
             
             Container c=getContentPane();
             c.setLayout(new BorderLayout());//给容器设置边界布局
             JButton  btn1=new JButton("中"),
                         btn2=new JButton("东"),
                         btn3=new JButton("西"),
                         btn4=new JButton("南"),
                         btn5=new JButton("北");
             
           //c.add(添加的组件名称,Borderlayout.提供的常量);
              c.add(btn1,BorderLayout.CENTER);
              c.add(btn2,BorderLayout.EAST);
              c.add(btn3,BorderLayout.WEST);
              c.add(btn4,BorderLayout.SOUTH);
              c.add(btn5,BorderLayout.NORTH); 
    
    //c.add(new JButton(新名称),旧的组件);
    //c.add(new JButton("覆盖"),BorderLayout.CENTER);
    
              setVisible(true);                
    }
    public static void main(String[] args){
             new Demo();
    }
    }

    4. 【网格布局】 new GridLayout 改变窗体大小组件的位置不会改变.组件的大小会随着窗体的大小而改变

    当网格组件中的组件JButton过多或过少时,网格会自动调整布局,行数不会变,列变

    //导入Java类
    import javax.swing.*;
    import java.awt.*;
    public class Demo extends JFrame{
             public Demo(){
             setBounds(100,100,300,300);
             setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
             Container c=getContentPane();
          //c.setLayout(new GridLayout(行,列,水平间距,竖直间距));
             c.setLayout(new GridLayout(rows:2,cols:3));//给容器设置网格布局
              
             for(int i=0;i<6;i++){
                  c.add(new JButton("按钮"+i));//给容器添加循环按钮组件
    } 
              setVisible(true);   
    }
    public static void main(String[] args){
      new Demo();
    }
    }
  • 相关阅读:
    CSS浮动(float、clear)通俗讲解
    JAVA 类的加载
    数据库操作 delete和truncate的区别
    正则表达式 匹配相同数字
    Oracle EBS OM 取消订单
    Oracle EBS OM 取消订单行
    Oracle EBS OM 已存在的OM订单增加物料
    Oracle EBS OM 创建订单
    Oracle EBS INV 创建物料搬运单头
    Oracle EBS INV 创建物料搬运单
  • 原文地址:https://www.cnblogs.com/mld1040871703/p/10087734.html
Copyright © 2011-2022 走看看