Java界面编程—布局管理
布局是指容器中组件的排列方式
常用的布局管理器
| 布局管理器名称 | 所属类包 | 说明 |
| FlowLayout(流式布局) | java.awt | 组件按照加入的先后顺序、按照设置的对齐方式从左向右排列,一行排满后到下一行开始继续排列 |
| BorderLayout(边框布局) | 容器划分为东、西、南、北、中五个区域,每个区域只能放一个组件 | |
| CardLayout(卡片布局) | 能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组件叠在一起,初始时显示该空间中第一个添加的组件,通过CardLayout类提供的方法可以切换该空间中显示的组件。 | |
| GridLayout(网格布局) | 容器的空间被划分为 M×N 个网格区域,每个区域只能放置一个组件 | |
| GridBagLayout(网格包布局) | GridLayout的升级版,组件仍然是按照行、列放置,但是每个组件可以占据多个网格。 | |
| BoxLayout(箱式布局) | java.swing | 允许在容器中纵向或者横向放置多个组件 |
| SprigLayout(弹簧布局) | 根据一组约束条件放置组件 | |
| 空布局 | 无 | 不适用布局管理器,按照组件自身提供的大小、位置信息放置组件。 |
容器的默认布局管理器
| 容器 | 默认的布局管理器 | |
| 顶层容器 | JFrame | BorderLayout(边框布局) |
| JDialog | BorderLayout(边框布局) | |
| JApplet | FlowLayout(流式布局) | |
| 中间容器 | JPanel | FlowLayout(流式布局) |
FlowLayout(流式布局)
使用 FlowLayout 布局方式的容器中组件按照加入的先后顺序和设置的对齐方式(左对齐、居中、右对齐)从左向右排列,一行排满(即组件超过容器的宽度后)后, 到下一行开始继续排列。
-- 组件按照设置的对齐方式进行排列
-- 无论对齐方式如何,组件均按照从左向右的方式进行排列,一行排满,转到下一行。比如按照右对齐排列,第一个组件放置在第一行的最右边,添加第二个组件时,第一个组件向左平移,第二个组件变成该行最右边的组件,最终,组件还是按照先后顺序从左向右排列,只不过靠在容器的右侧。
java.awt.FlowLayout
public class FlowLayout extends Object implements LayoutManager, Serializable
// 构造器
public FlowLayout() // 创建一个流式布局,默认是居中对齐,水平和垂直间隙是 5 个像素
public FlowLayout(int align) // 创建一个流式布局,指定对齐方式,默认水平和垂直间隙是 5 个像素 对齐方式使用FlowLayout的属性指定
public FlowLayout(int align, int hgap, int vgap) // 创建一个流式布局,指定对齐方式,指定水平和垂直间隙
// 常用方法
public void Void setAlignment(int align) // 设置比布局的对齐方式
public void setHgap(int hgap) // 设置组件之间及组件和容器之间的水平间隙
public void setVgap(int vgap) // 设置组件之间及组件和容器之间的垂直间隙
BorderLayout(边框布局)
-- 如果没有指定组件的方位,默认添加到中间的位置上。
-- 总是满屏占满容器,如果东、西、南、北中某个方位没有对应的组件,中间位置的组件就会占据器空缺的位置。

CardLayout(卡片布局)
java.awt.CardLayout
public class CardLayout extends Object implements LayoutManager2, Serializable
// 构造器
public CardLayout() // 组件距容器左右边界和上下边界距离为缺省值0个像素
public CardLayout(int hgap, int vgap) // 组件距容器左右边界和上下边界的距离为指定值
// 常用方法
public void show(Container parent, String name) // 显示指定卡片
public void first(Container parent) // 翻转到容器的第一张卡片
public void last(Container parent) // 翻转到容器的最后一张卡片
public void previous(Container parent) // 翻转到指定容器的前一张卡片
public void next(Container parent) // 翻转到指定容器的后一张卡片
GridLayout(网格布局)
-- 如果网格数量不够使用时,默认会多加一列

GridBagLayout(网格包布局)
BoxLayout(箱式布局)
SprigLayout(弹簧布局)
Java界面编程—布局管理的更多相关文章
- 转:Java图形化界面设计——布局管理器之FlowLayout(流式布局)其他请参考转载出处网址
http://blog.csdn.net/liujun13579/article/details/7771191 前文讲解了JFrame.JPanel,其中已经涉及到了空布局的使用.Java虽然可以以 ...
- 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)
摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...
- 三十三、Java图形化界面设计——布局管理器之null布局(空布局)
摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...
- 三十一、Java图形化界面设计——布局管理器之GridLayout(网格布局)
摘自http://blog.csdn.net/liujun13579/article/details/7772491 三十一.Java图形化界面设计--布局管理器之GridLayout(网格布局) 网 ...
- 03 Java图形化界面设计——布局管理器之FlowLayout(流式布局)
前文讲解了JFrame.JPanel,其中已经涉及到了空布局的使用.Java 虽然可以以像素为单位对组件进行精确的定位,但是其在不同的系统中将会有一定的显示差异,使得显示效果不尽相同,为此java提供 ...
- JAVA中GridBagLayout布局管理器应用详解
很多情况下,我们已经不需要通过编写代码来实现一个应用程序的图形界面,而是通过强大的IDE工具通过拖拽辅以简单的事件处理代码即可很轻松的完成.但是我们不得不面对这样操作存在的一些问题,有时候我们希望能够 ...
- JAVA流式布局管理器--JAVA基础
JAVA流式布局管理器的使用: FlowLayoutDeme.java: import java.awt.*;import javax.swing.*;public class FlowLayoutD ...
- Java图形化界面设计——布局管理器之FlowLayout(流式布局)
一.布局管理器所属类包 所属类包 布局管理器名称 说明 Java.awt FlowLayout(流式布局) 组件按照加入的先后顺序按照设置的对齐方式从左向右排列,一行排满到下一行开始继续排列 Bord ...
- java界面编程(3) ------ 控制布局
本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在java 中,组件放置在窗口上的方式可能与其它的GUI系统都不同样.首先,它全 ...
随机推荐
- CentOS YUM 安装 TOMCAT6
安装tomcat6 1 yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps 启动tomcat6 1 service tomcat6 st ...
- vue / js使用video获取视频时长
项目中遇到上传视频功能,需要有预览和获取视频时长功能,因之前使用upload(有需要的话可以参考下我之前的文章),这里就不赘述,直接用来上传视频,不过在上传之前和上传成功后的钩子里,获取不到时长: 没 ...
- oracle中job定时任务96
.INTERVAL参数常用值示例 每天午夜12点 ''TRUNC(SYSDATE + 1)'' 每天早上8点30分 ''TRUNC(SYSDATE + 1) + ...
- 这篇说的是Unity Input 输入控制器
关于Unity3D是什么.我就不多做解释了.由于工作原因,该系列原创教程不定期更新.每月必然有更新.谢谢各位 Unity Input---输入控制管理器: Edit->Project Setti ...
- WAV与PCM
转: 1.PCM格式介绍: PCM(Pulse Code Modulation)也被称为 脉码编码调制.PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入.(它的基本组 ...
- c++实现循环队列
#include <iostream> #include<stdio.h> #include<stdlib.h> using namespace std; ;// ...
- Springboot学习02-webjars和静态资源映射规则
Springboot学习01-webjars和静态资源映射规则 前言 1-以前我们在IDEA中创建一个项目,添加web依赖包,我们现在是一个web应用,应该在man目录下面有一个webapp文件夹,将 ...
- Intellij创建简单Springboot项目
Intellij创建简单Springboot项目 第一步:选择创建新项目——file-new-project 第二步:选择项目类型——Spring Initializr-next 第三步:输入项目信息 ...
- ABAP空格和零的问题
空格 concatenate wa_detail-zz_mark1 '' '' '' wa_detail-kdmat1 into wa_detail-zz_mark1 separated by spa ...
- C++ 计算直线的交点数(动态规划)
问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1466 Problem Description 平面上有n条直线,且无三线共点,问这些直线能有多少种不同 ...

