zoukankan      html  css  js  c++  java
  • Java Swing 第03记 布局管理器

    几种Swing常用的布局管理器

    BorderLaout

    它将容器分为5个部分,即东、南、西、北、中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的位置

    FlowLayout

    是按加入的先后顺序从左到有排列,一行排满了,再换行,继续从左到有排列.每一个组件都是居中排列的

    GridLayout

    是将整个布局空间,划分为若干行乘若干列的网络取悦.组件就位于这些小的区域内

    GridBagLayout

    是通过网格进行划分,可以看到每个组件都占据一个网格,也可以一个组件占据几个网格.有点类似GridLayout,但是比它要复杂的多

    GardLaout

    将容器中的每一个组件当做一个卡片,一个仅有一个卡片可见,最初显示容器时,增加到GardLaout对象的第一个组件可见

    BoxLayout

    通过允许在容器中水平或垂直的方式安排多个组件

    SpringLayout

    通过定义组件边沿的关系来实现布局

    GroupLayout

    指定在一个窗体上组件批次之间的关系,例如一个位置关系或对齐关系

    • 案例:

      • 代码

     1 import javax.swing.JFrame;
     2 
     3 public class FrameUtils {
     4 
     5     public static JFrame getFrame(String text, int width, int height){
     6         JFrame frame = new JFrame(text);
     7         frame.setSize(width, height);
     8         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     9         frame.setVisible(true);
    10         return frame;
    11     }
    12 }
    FrameUtils
    import java.awt.BorderLayout;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    import cn.java.swing.FrameUtils;
    
    /**
     * @author lunatic
     * 
     */
    public class Demo01 {
    
        public static void main(String[] args) {
            JFrame frame = FrameUtils.getFrame("Demo01 For BorderLayout", 300, 200);
            
            JPanel contentPane = new JPanel();
            frame.setContentPane(contentPane);
            
            JButton b1 = new JButton("生活");
            JButton b2 = new JButton("工作");
            JButton b3 = new JButton("睡觉");
            JButton b4 = new JButton("购物");
            JButton b5 = new JButton("饮食");
            
            BorderLayout lay = new BorderLayout();
            contentPane.setLayout(lay);
    
            contentPane.add(b1, BorderLayout.NORTH);
            contentPane.add(b2, BorderLayout.SOUTH);
            contentPane.add(b3, BorderLayout.EAST);
            contentPane.add(b4, BorderLayout.WEST);
            contentPane.add(b5, BorderLayout.CENTER);
        }
    }
    Demo01
      • 效果图

    BorderLayout

    它将容器分为5个部分,即东、南、西、北、中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的位置

    • 构造器 

    BorderLaout()

    构造一个组件之间没有间距的新边框布局

    BorderLaout(int h,int v)

    构造一个具有之间组件间距的边框布局

    东、南、西、北、中5个区域的命名常量EAST、SOUTH、WEST、NORTH、CENTER.当向某个区域内添加空间时,就要将代表区域的命名常量作为第二个参数的值传给add方法函数,例如:add(b1,BorderLayout.NORTH)

    • 案例:

      • 代码:Demo1

      • 效果图

    FlowLayout

    他是按照控件加入的先后顺序从左到右排列,一行排满换下一行;每一行的组件都是居中对齐.另外:如果有些控件看不见,可以使用方法pack自动调整Frame的大小,使得所有控件都显示出来。JFrame的默认布局管理器。

    • 构造器

    FlowLayout()

    构造一个FlowLayout对象,居中对齐,水平(垂直)间歇是5个单位

    FlowLayout(int align)

    构造一个FlowLayout对象,水平(垂直)间歇是5个单位,设置对齐

    FlowLayout(int align,int h,int v)

    构造一个FlowLayout对象,设置水平(垂直)间歇,设置对齐

    • 案例:

      • 代码

      • 效果图
  • 相关阅读:
    CSS3自适应布局单位 —— vw,vh
    JS 设计模式四 -- 模块模式
    JS 设计模式三 -- 策略模式
    JS 设计模式
    JS 设计模式二 -- 单例模式
    JS 设计模式一 -- 原型模式
    JS 灵活使用 console 调试
    JS 优化条件语句的5个技巧
    JS 函数节流与防抖
    前端性能优化
  • 原文地址:https://www.cnblogs.com/lunatic/p/4730055.html
Copyright © 2011-2022 走看看