在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,所有的组件水平和垂直间距为3
frame.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布局管理器和常用控件,实现仿QQ登录界面

    返回本章节 返回作业目录 需求说明: 使用Swing布局管理器和常用控件,实现仿QQ登录界面 实现思路: 创建登录界面的类QQLogin,该类继承父类JFrame,在该类中创建无参数的构造方法,在构造 ...

  2. 编写Java程序,使用Swing布局管理器与常用控件,实现用户登录界面

    返回本章节 返回作业目录 需求说明: 使用Swing布局管理器与常用控件,实现用户登录界面 实现思路: 创建用户登录界面的类LoginFrame,在该类中创建无参数的构造方法,在构造方法中,设置窗体大 ...

  3. Swing布局管理器介绍

    创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...

  4. Swing——布局管理器

    前言 在编写图形界面时,总是需要考虑的就是组件放在哪里,组件怎么大才合适.在Swing中就有现成的布局管理器帮我们做这些事情,我们不必写代码去一一安排.下面将介绍什么是布局管理器.Swing中常用布局 ...

  5. Java Swing布局管理器GridBagLayout的使用示例 [转]

    GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...

  6. 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)

    5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...

  7. Java Swing 第03记 布局管理器

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

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

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

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

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

随机推荐

  1. UVA 10798 - Be wary of Roses (bfs+hash)

    10798 - Be wary of Roses You've always been proud of your prize rose garden. However, some jealous f ...

  2. jquery+easy ui 实现表格列头筛选

    示例代码 1.筛选的下拉 <a href="javascript:void(0)" id="filterStatus" class="easyu ...

  3. 前端笔试题 JS部分

    题目 http://www.itmian4.com/forum.php?mod=viewthread&tid=4540 http://www.itmian4.com/forum.php?mod ...

  4. BootStrap 轮播 Carousel

    参考 http://wrongwaycn.github.io/bootstrap/docs/javascript.html#collapse 同样 启动方式有2种 一种是在div的class中加  另 ...

  5. 项目管理软件伙伴https://www.huobanyun.cn/

    现在项目管理软件市面上很多,但能够完全适合每家公司需求的比较难找,因为众口难调,每家公司都有自己的特殊情况,所以,建议考虑下有比较齐全的基础功能的标准化软件产品,同时又在项目管理开发能力上比较突出. ...

  6. JAVA CAS单点登录(SSO)

    一.教程前言 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤 单点登录(SSO):请看百科解释猛击这里打开 本教程使用的SSO服务器是Yelu大学研发的CAS(Central Auth ...

  7. 使用回调接口实现ActiveX控件和它的容器程序的通讯

    本文阅读基础:有一定的C++基础知识(了解继承.回调函数),对MFC的消息机制有一定了解,对COM的基础知识有一定了解,对ActiveX控件有一定了解. 一. 前言 ActiveX控件和它的容器程序如 ...

  8. FIB数列

    斐波那契级数除以N会出现循环,此周期称为皮萨诺周期. 下面给出证明 必然会出现循环 这是基于下面事实: 1. R(n+2)=F(n+2) mod P=(F(n+1)+F(n)) mod P=(F(n+ ...

  9. 【网络协议】TCP中的四大定时器

    前言 对于每个TCP连接,TCP一般要管理4个不同的定时器:重传定时器.坚持定时器.保活定时器.2MSL定时器. 重传定时器 非常明显重传定时器是用来计算TCP报文段的超时重传时间的(至于超时重传时间 ...

  10. SharePoint 2010 BCS - 简单实例(一)数据源加入

    博客地址 http://blog.csdn.net/foxdave 本篇基于SharePoint 2010 Foundation. 我的数据库中有一个病人信息表Patient,如今我就想把这个表中的数 ...