几种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对象,设置水平(垂直)间歇,设置对齐

  • 案例:

    • 代码

    • 效果图

最新文章

  1. C语言范例学习04
  2. Slip.js – 在触摸屏上实现列表的滑动排序功能
  3. 【MySQL】unique列插入重复值解决方案
  4. Python核心编程2第五章课后练习
  5. 如何彻底解决jsp页面中文乱码及数据库乱码
  6. Sicily 1151 魔板
  7. C 结构体零散知识点
  8. zookeeper初探
  9. nginx内置变量总结
  10. html - 表单form
  11. TextView不用ScrollViewe也可以滚动的方法
  12. 关于msf反弹后门的免杀Tips
  13. Could not find method google() for arguments [] on repository container.
  14. grunt入门讲解6:grunt使用步骤和总结
  15. anroid源码下载和编译
  16. 【转】Linux删除文件未释放空间问题处理
  17. iOS-----简易地CocoaAsyncSocket使用
  18. 使用rem单位的问题——Google下字体很大
  19. 100. Remove Duplicates from Sorted Array && 101. Remove Duplicates from Sorted Array II [easy]
  20. VB 中DTpicker日期控件的运用

热门文章

  1. Android TabWidget底部显示
  2. cin, cin.getline等函数
  3. 我需要在Web上完成一个图片上传的功能后续(+1)
  4. Sort Colors [LeetCode]
  5. sql语句查询服务器的数据库,数据库的全部表和表的全部列
  6. ueditor使用小结
  7. SQL server同时删除多个表
  8. WEB安全性测试
  9. Qt:Drag-Drop操作在QGraphicsView及Model/View框架下的实现
  10. Shell study note