在Swing中使用的所有布局管理器都可以实现LayoutManager接口。Swing中有五种常见的布局管理器分别为FlowLayout、BorderLayout、GridLayout、CardLayout、绝对定位。使用方法及常量可以查找JDK文档。

一:FlowLayout属于流式布局管理器,使用此种布局方式会使所有的组件想流水一样依次进行排序。

<span style="font-size:14px;">package org.cjl.demo18.layoutdemo;import java.awt.FlowLayout;import javax.swing.JButton;
import javax.swing.JFrame;public class FlowLayoutDemo01 {public static void main(String[] args){JFrame frame = new JFrame("welcome to mldn");//设置窗体中的布局管理器为FlowLayout,所有组件居中对齐,水平和垂直距离为3.frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));JButton but = null;for(int i=0;i<9;i++){but = new JButton("按钮  - "+i);frame.add(but);//加入按钮}frame.setSize(280,130);frame.setVisible(true);}
}
</span>

显示的结果是


所有的组件按照顺序依次向下排列,每个组件之间的顺序是3.

二:BorderLayout是将一个窗体的版面划分为东、西、南、北、中区域,可以直接将需要的组件放到这区域中。

<span style="font-size:14px;">package org.cjl.demo18.layoutdemo;import java.awt.BorderLayout;import javax.swing.JButton;
import javax.swing.JFrame;public class BorderLayoutDemo01 {public static void main(String[] args){JFrame frame = new JFrame("Welocme to mldn");//设置窗体中的布局管理器为BorderLayout,所有的组件水平和垂直间距为3frame.setLayout(new BorderLayout(3,3));frame.add(new JButton("东(EAST)"),BorderLayout.EAST);frame.add(new JButton("西(WEST)"),BorderLayout.WEST);frame.add(new JButton("南(SOUTH)"),BorderLayout.SOUTH);frame.add(new JButton("北(NORTH)"),BorderLayout.NORTH);frame.add(new JButton("中(CENTER)"),BorderLayout.CENTER);frame.pack();    //自动调整窗体大小frame.setVisible(true);}
}
</span>

三:GridLayout:是以表格的形式进行管理的,在使用此布局管理器时必须设置显示的行数

package org.cjl.demo18.layoutdemo;import java.awt.GridLayout;import javax.swing.JButton;
import javax.swing.JFrame;public class GridLayoutDemo01 {public static void main(String[] args){JFrame frame = new JFrame("welcome to mldn");//设置窗体中的布局管理为GridLayout,按3X5进行排列,水平和垂直间距为3.frame.setLayout(new GridLayout(3,5,3,3));JButton but = null;for(int i=0;i<13;i++){but = new JButton("按钮 - "+i);frame.add(but);}frame.pack();//根据组件自动调整窗体大小frame.setVisible(true);}
}

显示结果

四:CardLayout:是将一组组件彼此重,像卡片一样。

package org.cjl.demo18.layoutdemo;import java.awt.CardLayout;
import java.awt.Container;import javax.swing.JFrame;
import javax.swing.JLabel;public class CardLayoutDemo01 {public static void main(String[] args){JFrame frame = new JFrame("welcome to mldn");Container cont = frame.getContentPane();//取得 窗体容器CardLayout card = new CardLayout();frame.setLayout(card);//设置布局管理器cont.add(new JLabel("标签-A",JLabel.CENTER),"first");cont.add(new JLabel("标签-B",JLabel.CENTER),"second");cont.add(new JLabel("标签-C",JLabel.CENTER),"third");cont.add(new JLabel("标签-D",JLabel.CENTER),"fourth");cont.add(new JLabel("标签-E",JLabel.CENTER),"fifth");frame.pack();//自动调整窗体大小frame.setVisible(true);card.show(cont, "fourth");for(int i=0;i<5;i++){try{Thread.sleep(3000); //加入显示延迟}catch(InterruptedException e){e.printStackTrace();}card.next(cont);//从容器中取出组件}}
}

Swing布局管理器相关推荐

  1. Java Swing布局管理器(详解版)

    在使用 Swing 向容器添加组件时,需要考虑组件的位置和大小.如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加.这样虽然能够灵活控制组件的位置,实现却非常麻烦 ...

  2. Swing布局管理器介绍

    当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理.JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout. ...

  3. 3、Swing布局管理器

    在使用 Swing 向容器添加组件时,需要考虑组件的位置和大小.如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加.这样虽然能够灵活控制组件的位置,实现却非常麻烦 ...

  4. Swing布局管理器--BorderLayout(边框布局管理器)

    概要 在向容器中添加组件时,需要考虑组件的大小和位置.如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加,这样虽然可以控制组件的位置,实现起来却十分麻烦. 为此j ...

  5. Java Swing布局管理器

    引言 在使用 Swing 向容器添加组件时,需要考虑组件的位置和大小.如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加.这样虽然能够灵活控制组件的位置,实现却非 ...

  6. Swing布局管理器--流式布局管理器

    流式布局管理器 FlowLayout流式布局管理器,是JPanel和JApplet的默认布局管理 FlowLayout会将组件从上到下,从左到右的放置规律逐渐进行定位,直到占据这一行所在的空间,才会向 ...

  7. java边界布局东南西北_JAVA swing布局管理器实例解析

    组件在容器(比如Jframe)中的位置和大小是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组件的布局管理. 种类 java共提供了五种布局管理器,只介绍三种是最常见的布局管 ...

  8. Swing 布局管理器的嵌套,计算器

    /**  *  * @author ALbert  * @category 计算器  *  */ public class LayoutNesting extends JFrame{   public ...

  9. Java-GUI编程实战之管理系统 Day2【Swing(组件介绍、布局管理器、事件类及监听器类)、基础组件按钮和输入框的用法】

    视频.课件.源码[链接:https://pan.baidu.com/s/13ffqGDzH-DZib6-MFViW3Q 提取码:zjxs] Java-GUI编程实战之管理系统 Day1[项目开发流程. ...

最新文章

  1. Python+selenium+firefox模拟登录微博并爬取数据(1
  2. 【深度学习】如何将Voting和Stacking等应用到神经网络模型
  3. varnish介绍以及虚拟机的封装
  4. tp5 ajax 返回数据正常状态码却为500
  5. iscsiadm及其他磁盘相关命令
  6. Solidworks如何在零件表面贴图
  7. Linux下的文件共享全攻略系列之二:NFS快速配置教程与安全策略
  8. [转]IE首页被http://www.9798.net/篡改解决办法
  9. [springboot]集成org.quartz-scheduler进行任务调度(定时任务)
  10. 华为eSight网管平台折腾
  11. 新版标准日本语初级_第四十五课
  12. python pip install 安装
  13. delphi----Tstringlist,将有符号的数据变成数组aaa,bbb,ccc----list[0]=aaa,list[1]=bbb
  14. C语言午餐,【故事优选C】安详的午餐
  15. 用户体验五要素_新零售「盒马」的用户体验设计5要素
  16. 程序开过多线程,导致hadoop作业无法运行成功——Call to hadoop1:9000 failed on lo cal exception: java.io.IOException: Coul
  17. SqlServer字符串末尾的数字
  18. linux制作手机系统,自己动手制作个性化Linux操作系统手机刷机包
  19. 性能测试瓶颈分析与系统调优(9)java程序GC机制及性能稳定性调优分析
  20. B. Absent Remainder

热门文章

  1. webpack——冒烟测试
  2. JavaScript 实战-翻牌游戏 - H5和CSS3 (1)
  3. 设计需要满足用户更需要分析需求
  4. python(10.30)
  5. 一条SQL语句求全年平均值
  6. jrvideoplayer_JRVideoPlayer-视频播放器
  7. 20个专业在线配色网站分享
  8. 什么是盒模型(Box Model)
  9. [IE编程] IE网页截图技术总结
  10. 科技新问:光明四步PK激光手术,谁是近视眼克星?