1. package com.swing;
  2.  
  3. import java.awt.Container;
  4. import java.awt.FlowLayout;
  5.  
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.WindowConstants;
  9.  
  10. /**
  11. * 1:流(FlowLayout)布局管理器是布局管理器中最基本的布局管理器,流布局管理器在整个容器中
  12. * 的布局正如其名,像流一样从左到右摆放组件,直到占据了这一行的所有空间,然后再向下移动一行。
  13. * 默认情况下,组件在每一行上都是居中排列的,但是通过设置也可以更改组件在每一行上的排列位置
  14. *
  15. * 2:FlowLayout类中具有三种构造方法
  16. * alignment参数使用流布局管理器后组件在每一行的具体摆放位置
  17. * horizGap参数以像素为单位指定组件之间的水平分割
  18. * vertGap参数以像素为单位指定组件之间的垂直分割
  19. *
  20. * @author biexiansheng
  21. *
  22. */
  23. public class FlowLayoutPosition extends JFrame{
  24.  
  25. public FlowLayoutPosition(){
  26. setTitle("本窗体使用流布局管理器");//设置窗体标题
  27. Container container=getContentPane();//初始化容器
  28. //设置窗体使用流布局管理器,使组件右对齐,并且设置组件之间的水平间隔,和垂直间隔
  29. setLayout(new FlowLayout(1,10,10));//new一个构造方法
  30. //FlowLayout第一个参数设置为0每一行组件将按照左对齐排列
  31. //FlowLayout第一个参数设置为1每一行组件将按照中间对齐排列
  32. //FlowLayout第一个参数设置为2每一行组件将按照右对齐排列
  33.  
  34. for(int i=0;i<10;i++){//在容器中添加10个按钮
  35. container.add(new JButton("button"+i));
  36. //new一个按钮构造方法,这种使用技巧勤加练习
  37. }
  38. setSize(300,200);//设置窗体的大小
  39. setVisible(true);//设置窗体可视化
  40. //设置窗体的关闭方式
  41. setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  42. }
  43.  
  44. public static void main(String[] args) {
  45. FlowLayoutPosition fl=new FlowLayoutPosition();
  46. //初始化对象调用构造方法
  47. }
  48. }

实例运行结果如下

  1. package com.swing;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Container;
  5.  
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.WindowConstants;
  9.  
  10. /**
  11. * 1:在默认不指定窗体布局的情况下,Swing组件的布局模式是边界(BorderLayout)
  12. * 布局管理器
  13. *
  14. * 2:边界布局管理器还可以将容器划分为东西南北中5个区域,可以将组件加入到这5个区域中
  15. * 边界布局管理器可将标签放置在窗体中间,并且整个组件占据了窗体的所有的空间
  16. *
  17. * 3:容器调用Container类的add()方法添加组件时可以设置此组件在边界布局管理器中的区域
  18. * 区域的控制可以由BorderLayout类中的成员变量来决定
  19. * @author biexiansheng
  20. *
  21. */
  22. public class BorderLayoutPosition extends JFrame{
  23.  
  24. //定义组件摆放位置的数组
  25. String[] border={BorderLayout.CENTER,BorderLayout.NORTH
  26. ,BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.EAST};
  27. /*1:将布局以及组件名称分别放置在数组中,然后设置容器使用边界布局管理器
  28. * 最后在循环中将按钮添加到容器中,并设置组件布局
  29. *2:add()方法提供了在容器中添加组件的功能,并同时设置组件的摆放位置
  30. * */
  31. //定义按钮组件上面的文字ESWN 东南西北 上北下南左西右东
  32. String[] buttonName={"center button","north 北 button",
  33. "south 南 button","west 西 button","east 东 button",};
  34. public BorderLayoutPosition(){//定义一个构造方法
  35. setTitle("这个窗体使用边界布局管理器");//
  36. Container container=getContentPane();//定义一个容器
  37. setLayout(new BorderLayout());//设置容器为边界布局管理器
  38. //setLayout()语法为设置布局管理器
  39.  
  40. //在容器中添加按钮,并设置按钮布局
  41. for(int i=0;i<border.length;i++){
  42. container.add(border[i],new JButton(buttonName[i]));
  43. }
  44.  
  45. //设置窗体的外部属性
  46. setSize(350,200);//设置窗体的大小
  47. setVisible(true);//设置窗体可见
  48. //设置窗体的关闭方式
  49. setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  50. }
  51. public static void main(String[] args) {
  52. // TODO Auto-generated method stub
  53. BorderLayoutPosition bl=new BorderLayoutPosition();
  54. //实例化对象的时候就调用了构造方法
  55. }
  56.  
  57. }

实例运行结果如下

  1. package com.swing;
  2.  
  3. import java.awt.Container;
  4. import java.awt.GridLayout;
  5.  
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.WindowConstants;
  9.  
  10. /**
  11. * 1:网格(GridLayout)布局管理器将容器划分为网格,所以组件可以按行和列进行排列
  12. * 在网格布局管理器中,每一个组件的大小都相同,并且网格中空格的个数由网格的行数和列数决定
  13. * 如一个两行两列的网格能产生4个大小相等的网格,
  14. *
  15. * 2:组件从网格的左上角开始,按照从左到右,从上到下的顺序加入到网格中,而且每一个组件都会填满
  16. * 整个网格,改变窗体的大小,组件的大小也会随之改变
  17. *
  18. * 3:网格布局管理器主要有2个构造方法
  19. * rows参数代表网格的行数
  20. * columns参数代表网格的列数,这2个参数只有一个可以为0代表一行或者一列可以排列任意多个组件
  21. * 参数horizGap指定网格之间的间距,指定网格之间的水平间距
  22. * 参数vertGap指定网格之间的垂直间距
  23. * @author biexiansheng
  24. *
  25. */
  26. public class GridLayoutPosition extends JFrame{
  27.  
  28. public GridLayoutPosition(){//定义一个构造方法
  29. Container container=getContentPane();//定义一个容器
  30.  
  31. //设置窗体使用网格布局管理器,设置了7行3列的网格
  32. setLayout(new GridLayout(7,3,5,5));//先开始设置布局管理器
  33. for(int i=0;i<20;i++){
  34. container.add(new JButton("button"+i));
  35. }
  36. //设置容器的外部结构
  37. setTitle("这是一个网格布局管理器的窗体");
  38. setSize(300,300);//设置窗体的大小
  39. setVisible(true);//设置窗体的可见
  40. //设置窗体的关闭方式
  41. setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  42. }
  43. public static void main(String[] args) {
  44. // TODO Auto-generated method stub
  45. GridLayoutPosition gl=new GridLayoutPosition();
  46. //初始化对象时调用构造方法
  47. }
  48.  
  49. }

实例运行结果如下

JAVA学习Swing章节流布局管理器简单学习的更多相关文章

  1. (转)Java 的swing.GroupLayout布局管理器的使用方法和实例

    摘自http://www.cnblogs.com/lionden/archive/2012/12/11/grouplayout.html (转)Java 的swing.GroupLayout布局管理器 ...

  2. Java 的swing.GroupLayout布局管理器的使用方法和实例(转)

    The following builds a panel consisting of two labels in one column, followed by two textfields in t ...

  3. Java Swing 盒布局管理器

    Swing 盒布局管理器 因为项目的原因,重新看看swing的东西,在想要将两个横向的容器纵向表示的时候,发现用盒布局 话不多说,直接代码 package ui; import javax.swing ...

  4. java流布局管理器

    public class FlowLayoutPosition extends JFrame{    public FlowLayoutPosition()    {        setTitle( ...

  5. 文献管理器endnote学习笔记

    目录 文献管理器endnote学习笔记 一.文献信息输入(将文献信息添加到文献管理软件endnote的多种方法) 1.在线检索(方便快捷,但有些网站无法直接检索) 2.网站输出(所有网站都支持的方式, ...

  6. JAVA学习Swing章节按钮组件JButton的简单学习

    package com.swing; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; ...

  7. JAVA学习Swing章节JPanel和JScrollPane面板的简单学习

    package com.swing; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JButton ...

  8. Java基础之创建窗口——使用流布局管理器(TryFlowLayout)

    控制台程序. FlowLayout把组件放在容器的连续行中,使每一行都放置尽可能多的组件.如果某行已满,就放在下一行.工作方式类似于文本处理器把单词放在行中.主要用途是放置按钮,但也可以用来放置其他组 ...

  9. 【java】浅析java组件中的布局管理器

    这篇博文笔者介绍一下java组件中,常用的布局管理器.java组件中的布局方式有好几十种,所有的这些布局管理器都实现了java.awt.LayoutManager接口.接下来笔者介绍一下常用的5种布局 ...

随机推荐

  1. IE调试网页之四:F12 开发人员工具控制台错误消息 (Windows)(转载)

    F12 工具控制台可以报告在运行时期间发生的错误和信息消息.本文将介绍错误消息,并提供有关如何修正这些错误的建议. 简介 F12 工具控制台错误消息提供了一些代码(例如,SEC7111 或 HTML1 ...

  2. Selenium2+python自动化14-iframe

    前言 有很多小伙伴在拿163作为登录案例的时候,发现不管怎么定位都无法定位到,到底是什么鬼呢,本篇详细介绍iframe相关的切换 以http://mail.163.com/登录页面10为案例,详细介绍 ...

  3. access数据库连接问题

    使用Visual Studio连接access数据库(数据库后缀.accdb)时连接不上(access数据库提示未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序)解决办 ...

  4. python学习之——计算文件行数

    # -*- coding: cp936 -*- #转载源于:http://blog.csdn.net/houyj1986/article/details/21196027 #计算文件行数 #1.文件比 ...

  5. vsftpd移植

    1.交叉编译 2.将生成的 vsftpd 复制到目标板 /usr/sbin 目录,vsftpd.conf 复制到目标板 /etc 目录,并添加 vsftpd 为可执行: 3.配置 使用 vi 打开 v ...

  6. web form 复合控件

    DropDownList 下拉列表 会被编译为select option ps.name 服务端常用,id 客户端常用 一般用法: 一.将数据放进去 方法一:同WinForm相同,给定数据源,然后绑定 ...

  7. List的使用

    List<string> AllFilesPath = new List<string>(); ) // get all files path { ; i < files ...

  8. SQL优化笔记—CPU优化

    补充:常规服务器动态管理对象包括,下面有些资料可能会应用到 dm_db_*:数据库和数据库对象dm_exec_*:执行用户代码和关联的连接dm_os_*:内存.锁定和时间安排dm_tran_*:事务和 ...

  9. ios图片的压缩

    最近做图片的上传,由于项目中的涉及到的图片是从相册和相机中拍照获取的,所以图片的类型不一定,有些是jpg有些是png,另外随着现在设备相继的像素越来越高,所拍摄的图片也越来越到,在图片上传之前我们是需 ...

  10. [转载]& 引用 取地址

    原文地址:& 引用 取地址作者:beter 引用实际上就是给同一个变量取了多个名字.     举个例子:     有个人的名字叫a,之后又改名叫b,这时a和b都是指这个人,这样b就引用了a,即 ...