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();
    }
    }
  • 相关阅读:
    EF中嵌套类的where查询
    VS中添加Web References
    DropDownList绑定数据源后,要插入项的处理
    CheckBoxList选中某项,获取其它项是否是选中
    WebAPI的使用
    HTML5中像网页中保存cookie的实现
    日志切割之Logrotate
    CentOS防火墙iptables使用
    CentOS7安装Python3
    Keepalived高可用
  • 原文地址:https://www.cnblogs.com/mld1040871703/p/10087734.html
Copyright © 2011-2022 走看看