在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. OpenGL: 环境配置和图元的绘制

    前言 距离上一篇博客已经过去一个半月了,这段时间过得确实充实,虽然一大段时间泡在图书馆复习,但至少也能学到点东西.跨年晚和元旦一整天,全身心投入图形学小课设的编程,终于实现了老师要求的所有功能,回想起 ...

  2. 3.PHP 教程_PHP 语法

     基础的PHP语法 PHP脚本可以放在文档中的任何位置. PHP脚本以<?php开始,以?>结束: <?php //PHP代码 ?> PHP文件的默认文件扩展名是". ...

  3. R语言学习笔记之外部文件读取

    在win32位的系统下,RODBC包内的函数是可以直接运行的,但在win64位的系统则不支持! 1.读取外部文件read.table()---csv,txt,excel 最基本函数是read.tabl ...

  4. Python之路:Python 基础(一)

    一.第一句Python代码 在 /home/dev/ 目录下创建 hello.py 文件,内容如下: print "hello,lenliu" 执行 hello.py 文件,即: ...

  5. 09-C语言数组

    目录: 一.使用xcode编辑工具 二.数组 三.数组遍历 四.多维数组 回到顶部 一.使用xcode编辑工具 1 打开xcode程序 2 创建一个项目 OSX -> Application - ...

  6. IOS 特定于设备的开发:UIDevice

    UIDevice类展示了一些关键的特定于设备的属性,包括使用的iPhone ,Ipad或iPod Touch型号.设备名称.以及OS名称和版本. 他是一种一站式解决方案,用于提取出某些系统详细信息.每 ...

  7. MVC-04 视图(2)

    三.View如何从Aciton取得数据 从Action取得数据,在ASP.NET MVC可区分成两种方式,一种是“使用弱类型取得数据”,另一种则是“使用强类型取得数据”,两者的差别在于View页面最上 ...

  8. ASP.NET MVC进阶之路:依赖注入(Di)和Ninject

    0X1 什么是依赖注入 依赖注入(Dependency Injection),是这样一个过程:某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只定义一个注入点.在程序运行过程中,客户 ...

  9. 宣布在 Azure 镜像库中正式推出 Windows Server 2012 R2 并降低 Windows Azure 的实例定价

    我们今天将宣布两条消息,为使用基础结构服务的客户提供更多选择和成本节约:在镜像库中推出 Windows Server 2012 R2 以及降低 Memory Intensive 计算实例定价. 虚拟机 ...

  10. Balanced Binary Tree --Leetcode C++

    递归 左子树是否为平衡二叉树 右子树是否为平衡二叉树 左右子树高度差是否大于1,大于1,返回false 否则判断左右子树 最简单的理解方法就是如下的思路: class Solution { publi ...