1. GridLayout

    • GridLayout类是一个布局管理器,它将一个容器的组件放在矩形网格中。 容器被分成等大小的矩形,并且每个矩形中放置一个组件

    • Constructor 描述
      GridLayout() 在单个行中创建一个每个组件的默认值为一列的网格布局。
      GridLayout(int rows, int cols) 创建具有指定行数和列数的网格布局。
      GridLayout(int rows, int cols, int hgap, int vgap) 创建具有指定行数和列数的网格布局。
    • import javax.swing.*;
      import java.awt.*;public class SwingGridLayout extends JFrame{public SwingGridLayout(){newSwingGridLayout();}/*** 创建15个按钮,填入设置为GridLayout的panel中* 鼠标调剂frame大小,按钮的大小会自动改变*/public void newSwingGridLayout(){//创建JFrame,设置关闭方法以及视图大小位置等信息new JFrame("SwingBorderLayout");setDefaultCloseOperation(EXIT_ON_CLOSE); //点击关闭时,关闭java程序,否则会在后台运行setBounds(450,250,546,383);//创建container和panel,将panel嵌入container中Container container = getContentPane();container.setLayout(new BorderLayout(5,5));JPanel panel = new JPanel();panel.setLayout(new GridLayout(5,3,5,5));//参数为行数,列数,水平和垂直间距container.add(panel,BorderLayout.CENTER);//循环创建button,并添加到panel中for(int i=1; i<=15; i++){JButton button = new JButton("button"+i);panel.add(button);}setVisible(true);}public static void main(String[] args) {new SwingGridLayout();}
      }
      

  • 当行数和列数都被设置为非零值时,无论是通过构造方法还是通过setRowssetColumns方法,都会忽略指定的列数。 而是从指定的行数和布局中的组件总数确定列的数量。 因此,例如,如果已经指定了三行和两列,并且将九个组件添加到布局,则它们将显示为三列三列。 仅当行数设置为零时,才指定列数影响布局
  1. FlowLayout

    • 流程布局将组件布置在定向流中,与段落中的文本行类似。流程布局通常用于布置面板中的按钮。 它可以水平排列按钮,直到不再有按钮在同一行上。 行对齐由align属性确定

    • Constructor 描述
      FlowLayout() 构造一个新的 FlowLayout ,具有中心对齐和默认的5单位水平和垂直间隙。
      FlowLayout(int align) 构造新的 FlowLayout具有指定的对齐和默认的5单位水平和垂直间隙。
      FlowLayout(int align, int hgap, int vgap) 创建一个新的流程布局管理器,具有指示的对齐方式和指示的水平和垂直间距。
    • import javax.swing.*;
      import java.awt.*;public class SwingFlowLayout extends JFrame{int size = 10; //创建按钮的数量public SwingFlowLayout(){newSwingFlowLayout();}/*** 创建10个按钮,填入设置为FlowLayout的panel中* 鼠标调剂frame大小,按钮的布局会自动改变*/public void newSwingFlowLayout(){//创建JFrame,设置关闭方法以及视图大小位置等信息new JFrame("SwingBorderLayout");setDefaultCloseOperation(EXIT_ON_CLOSE); //点击关闭时,关闭java程序,否则会在后台运行setBounds(450,250,546,383);//创建container和panel,将panel嵌入container中Container container = getContentPane();container.setLayout(new BorderLayout(5,5));JPanel panel = new JPanel();panel.setLayout(new FlowLayout(0,5,5)); //0为左对齐,1为居中对齐,2为右对齐container.add(panel,BorderLayout.CENTER);//循环创建button,并添加到panel中for(int i=1; i<=size; i++){JButton button = new JButton("button"+i);panel.add(button);}setVisible(true);}public static void main(String[] args) {new SwingFlowLayout();}
      }
      

  2. BorderLayout

    • 边界布局设置了一个容器,安排和调整其组件,以适应五个区域:北,南,东,西和中心。 每个区域可以含有不超过一个部件,并且通过相应的常数确定: NORTHSOUTHEASTWEST ,和CENTER ,如果不设置东西南北其中一个或多个,其余部分将自动补满* 如果不设置中,则中间的将会空出来

    • Constructor 描述
      BorderLayout() 构建新的边框布局,组件间没有间隙。
      BorderLayout(int hgap, int vgap) 构造具有组件之间指定间隙的边框布局。
    • import javax.swing.*;
      import java.awt.*;public class SwingBorderLayout extends JFrame{private String border[] = {BorderLayout.NORTH,BorderLayout.EAST,BorderLayout.WEST,BorderLayout.SOUTH,BorderLayout.CENTER};private String borderName[] = {"NORTH","EAST","WEST","SOUTH","CENTER"};public SwingBorderLayout(){newSwingBorderLayout();}/*** 创建五个按钮,分别位于BorderLayout的五个区域* 如果不设置东西南北其中一个或多个,其余部分将自动补满* 如果不设置中,则中间的将会空出来*/public void newSwingBorderLayout(){//创建JFrame,设置关闭方法以及视图大小位置等信息new JFrame("SwingBorderLayout");setDefaultCloseOperation(EXIT_ON_CLOSE); //点击关闭时,关闭java程序,否则会在后台运行setBounds(450,250,546,383);//创建container和panel,将panel嵌入container中Container container = getContentPane();container.setLayout(new BorderLayout(5,5));JPanel panel = new JPanel();panel.setLayout(new BorderLayout(5,5));container.add(panel,BorderLayout.CENTER);//循环创建button,并添加到panel中for(int i=0; i<border.length; i++){//if(i==1 || i==4){ continue; } ///测试少了其中的区域会怎么样JButton button = new JButton(borderName[i]);panel.add(button,border[i]);}setVisible(true);}public static void main(String[] args) {new SwingBorderLayout();}
      }
      

GridLayout、FlowLayout和BorderLayout布局相关推荐

  1. LayoutManager布局管理器:FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout、BoxLayout

    推荐阅读:Java图形界面详解(AWT.Swing) 专栏 文章目录 概述 FlowLayout 概述.构造器 代码示例 BorderLayout 概述.构造器 代码示例1 代码示例2 GridLay ...

  2. java flowlayout参数_java经典5种 FlowLayout 、BorderLayout、GridLayout、GridBagLayout、CardLayout布局...

    Java 程序通过jvm可以很好的移植到其他平台上,但是java 生成的图形界面样式,在不使用布局的情况下,往往需要重新设定大小,才能在新的平台上调整到最佳样式.这是由于组件的最佳大小 往往是与平台相 ...

  3. css flex布局 padding,CSS3 flex布局之快速实现BorderLayout布局

    学习完flex的布局模式之后,我们趁热打铁,来实现一个BoxLayout布局.什么是BoxLayout布局?那我们先上一个图看看 BoxLayout布局写过后端UI代码的编程者应该不陌生了,写前端的代 ...

  4. BorderLayout布局管理器设置3个按钮

    BorderLayout布局管理器设置3个按钮 package p1;import java.awt.BorderLayout; import java.io.BufferedReader; impo ...

  5. 自定义 FlowLayout流式布局搜索框 加 GreenDao存取搜索记录,使用RecyclerView展示

    输入框布局的shape <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android ...

  6. BorderLayout布局

    BorderLayout布局管理器  BorderLayout类在java.awt包中  JFrame类的默认布局是BorderLayout  BorderLayout布局把容器划分为东.西.南 ...

  7. BorderLayout布局的简单使用

    BorderLayout布局的简单使用 BorderLayout的常用方法如下: 内容也比较简单,代码如下: import javax.swing.*; import java.awt.*;class ...

  8. Android FlowLayout 流式布局

    FlowLayout 流式布局 Android 流式布局控件,实现自动换行,操出范围可以滑动功能,未使用控件复用功能,所以不应该有太多的子控件. 主要包含功能: 流式布局,自动换行 使用Adapter ...

  9. FlowLayout流式布局管理器与网格布局GridLayout

    总结 1.继承JFrame类 2.在最上方定义组件 3.在构造方法中创建组件 4.在构造方法中添加组件 5.设置窗体属性 6.显示窗体 7.在主函数中创建对象 所有布局管理器都可以添加任意组件 (滚动 ...

最新文章

  1. linux 常用命令:
  2. 【Laravel 之 Cache 模块】 使用database drive
  3. JZOJ 5443. 【NOIP2017提高A组冲刺11.2】字典序
  4. hdu 1872 稳定排序
  5. 从零开始学Pytorch(十四)之优化算法进阶
  6. 【Python】画图海龟
  7. 关于java通过反射 获取/修改 对象属性值的一些注意事项
  8. 自然语言交流系统 phxnet团队 创新实训 个人博客 (十一)
  9. selenium控制浏览器操作
  10. MyBatis(八)------MyBatis动态SQL
  11. linux 双mipii摄像头,Toybrick-开源社区-TB-RK3399ProD-imx258摄像头 mipi 错误
  12. 脚本精灵服务器引擎数据为空,脚本精灵服务器
  13. GEE|typeof、ee.Algorithms.If、ee.Algorithms.IsEqual 语法
  14. 近世代数:置换群、陪集指数和Lagrange定理
  15. iOS视频开发(一):视频采集
  16. 驱动miniPCIE网络模块EC20硬件电路详解
  17. 低代码平台和专业开发人员——完美搭档?
  18. 云计算机有什么用,云电脑对玩家来说有什么作用
  19. window docker 找不到原先所有镜像和容器
  20. docx_demos(创建文档类Document及属性方法, 创建段落文本类Paragraph及段落格式设置, 创建字体设置类Run及属性等)

热门文章

  1. linux crond
  2. JVM Shenandoah收集器
  3. 字节跳动提前批Android客户端(四面+HR面),最终Offer等到手,我也太难了吧
  4. 复星旅文拟12月中旬上市:最高募资42亿港元 淘宝做基石投资
  5. 智能手表音频特性测试_智能手表防水测试方案(气密性测试)
  6. mongodb踩坑:复制集(尤其是单台服务器多个mongo服务的)服务节点挂载问题
  7. MinMaxScaler 中scaler.inverse_transform不能反归一化正确的数据
  8. MD5 加密和解密
  9. 到底是该打工还是该创业?
  10. Linux errno错误信息大全