在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. [LeetCode]题解(python):097-Interleaving String

    题目来源: https://leetcode.com/problems/interleaving-string/ 题意分析: 给定字符串s1,s2,s3,判断s3是否由s1和s2穿插组成.如“abc” ...

  2. lambda, reduce, map求阶乘之和

    学完这几个优雅的内建函数,就可以做一些有趣的小练习来激发兴趣了.而python最大的好处便是简洁,看下边要求 用1行代码求 1! + 2! + 3! + ... + 10! 求阶乘 reduce函数用 ...

  3. OutputDebugString 输出信息到调试器

    #include <Windows.h>#include <stdio.h>#include <stdarg.h> void __cdecl odprintf(co ...

  4. Wmic-linux

    Description Windows Management Instrumentation Command-line (WMIC) uses Windows Management Instrumen ...

  5. mfc添加气球式提示栏

    //    TOOLTIPWND.H  添加气球式提示栏 #if !defined(AFX_TOOLTIPWND_H__2C52D3E4_2F5B_11D2_8FC9_000000000000__IN ...

  6. Qt5 FOR WINCE7, Visual Studio 2008环境的搭建

    Qt5 FOR WINCE7, Visual Studio 2008环境的搭建 Qt5发布时,试过配置Qt5 for wince的环境,原因是暂时不支持WINCE.前几天意外发现官方博客说明已经开始支 ...

  7. xls与csv文件区别?

    xls 文件就是Microsoft excel电子表格的文件格式.CSV是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. 此文件,一行即为数据表的一行.生成数据表字段用半角逗号隔 ...

  8. 【监控】使用probe对tomcat服务进行监控

    1.运行环境(博主本地) JDK:jdk1.6 Tomcat:tomcat7 OS:Windows10 2.下载 点击下载 3.安装运行 1.解压,将probe文件夹复制放进tomcat里面的weba ...

  9. JavaSE学习总结第23天_多线程1

      23.01  多线程程序的引入 如果一个程序只有一个执行流程,所以这样的程序就是单线程程序. 如果一个程序有多条执行流程,那么,该程序就是多线程程序. 23.02  进程概述及多进程的意义 要想说 ...

  10. NOIP2015酱油记

    day0 坐动车到广州..下午就在酒店颓... day1 早上6:30起床...大概8:00到六中..ZSJZ众貌似很晚才到..毕竟他们酒店就在学校门口(真的就刚刚好是门口...),大概8:15进去机 ...