文档章节

Java中常用的布局管理器

Vernayyy
 Vernayyy
发布于 2016/03/03 20:38
字数 1629
阅读 9
收藏 0
点赞 0
评论 0

1、FlowLayout 流式布局

API中说明:

流布局一般用来安排面板中的按钮。它使得按钮呈水平放置,直到同一条线上再也没有适合的按钮。线的对齐方式由
align 属性确定。可能的值为:

 import java.awt.*;
import java.applet.Applet; [object Object]
public class myButtons extends Applet {
 [object Object] [object Object] [object Object]Button button1, button2, button3; [object Object]
 [object Object] [object Object] [object Object]public void init() { [object Object]
 [object Object] [object Object] [object Object] [object Object]button1 = new Button("Ok");  [object Object] [object Object] [object Object]
 [object Object] [object Object] [object Object] [object Object]button2 = new Button("Open");
 [object Object] [object Object] [object Object] [object Object]button3 = new Button("Close"); [object Object]
 [object Object] [object Object] [object Object] [object Object]add(button1);  [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object]
 [object Object] [object Object] [object Object] [object Object]add(button2); [object Object]
 [object Object] [object Object] [object Object] [object Object]add(button3); [object Object]
 [object Object] [object Object] [object Object] [object Object]} [object Object]
 [object Object]} [object Object]


2、BorderLayout 边框式布局

API说明:

这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTHSOUTHEASTWESTCENTER。当使用边框布局将一个组件添加到容器中时,要使用这五个常量之一,例如:

 Panel p = new Panel(); p.setLayout(new BorderLayout()); p.add(new Button("Okay"), BorderLayout.SOUTH);

为了方便起见,BorderLayout 将缺少字符串说明的情况解释为常量 CENTER

 Panel p2 = new Panel(); p2.setLayout(new BorderLayout()); p2.add(new TextArea()); // Same as p.add(new TextArea(), BorderLayout.CENTER);

此外,BorderLayout 支持相对定位常量 PAGE_STARTPAGE_ENDLINE_STARTLINE_END。在 ComponentOrientation 设置为 ComponentOrientation.LEFT_TO_RIGHT 的容器中,这些常量分别映射到 NORTHSOUTHWESTEAST

3、GridLayout 网格布局

API说明:

GridLayout
类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。例如,下面是一个将六个按钮布置到三行两列中的
applet:

 import java.awt.*; [object Object]
import java.applet.Applet; [object Object]
public class ButtonGrid extends Applet { [object Object]
 [object Object] [object Object]public void init() { [object Object]
 [object Object] [object Object] [object Object] [object Object] [object Object]setLayout(new GridLayout(3,2));
 [object Object] [object Object] [object Object] [object Object] [object Object]add(new Button("1")); [object Object]
 [object Object] [object Object] [object Object] [object Object] [object Object]add(new Button("2")); [object Object]
 [object Object] [object Object] [object Object] [object Object] [object Object]add(new Button("3")); [object Object]
 [object Object] [object Object] [object Object] [object Object] [object Object]add(new Button("4")); [object Object]
 [object Object] [object Object] [object Object] [object Object] [object Object]add(new Button("5")); [object Object]
 [object Object] [object Object] [object Object] [object Object] [object Object]add(new Button("6")); [object Object]
 [object Object] [object Object]} [object Object]
 [object Object]} [object Object]

4、CardLayout 卡片布局

API说明:

CardLayout 对象是容器的布局管理器。它将容器中的每个组件看作一张卡片。一次只能看到一张卡片,容器则充当卡片的堆栈。当容器第一次显示时,第一个添加到
CardLayout 对象的组件为可见组件。

卡片的顺序由组件对象本身在容器内部的顺序决定。CardLayout 定义了一组方法,这些方法允许应用程序按顺序地浏览这些卡片,或者显示指定的卡片。addLayoutComponent(java.awt.Component, java.lang.Object) 方法可用于将一个字符串标识符与给定卡片关联,以便进行快速随机访问。


5、BoxLayout 盒式布局

API说明:

允许垂直或水平布置多个组件的布局管理器。这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列。

用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLayout,但没那么复杂。该图显示了两个水平排列的面板,每个面板都包含 3 个垂直排列的组件。

BoxLayout 管理器是用 axis 参数构造的,该参数指定了将进行的布局类型。有四个选择:

X_AXIS :从左到右水平布置组件。
Y_AXIS :从上到下垂直布置组件。
LINE_AXIS :根据容器的 ComponentOrientation 属性,按照文字在一行中的排列方式布置组件。如果容器的 ComponentOrientation 表示水平,则将组件水平放置,否则将它们垂直放置。对于水平方向,如果容器的 ComponentOrientation 表示从左到右,则组件从左到右放置,否则将它们从右到左放置。对于垂直方向,组件总是从上到下放置的。
PAGE_AXIS :根据容器的 ComponentOrientation 属性,按照文本行在一页中的排列方式布置组件。如果容器的 ComponentOrientation 表示水平,则将组件垂直放置,否则将它们水平放置。对于水平方向,如果容器的 ComponentOrientation 表示从左到右,则组件从左到右放置,否则将它们从右到左放置。对于垂直方向,组件总是从上向下放置的。

对于所有方向,组件按照将它们添加到容器中的顺序排列。

BoxLayout 试图按照组件的首选宽度(对于水平布局)或首选高度(对于垂直布局)来排列它们。对于水平布局,如果并不是所有的组件都具有相同的高度,则 BoxLayout 会试图让所有组件都具有最高组件的高度。如果对于某一特定组件而言这是不可能的,则 BoxLayout 会根据该组件的 Y 调整值对它进行垂直调整。默认情况下,组件的 Y 调整值为 0.5,这意味着组件的垂直中心应该与其他 Y 调整值为 0.5 的组件的垂直中心具有相同 Y 坐标。

同样地,对于垂直布局,BoxLayout 试图让列中的所有组件具有最宽组件的宽度。如果这样做失败,则 BoxLayout 会根据这些组件的 X 调整值对它进行水平调整。对于 PAGE_AXIS 布局,基于组件的开始边水平调整。换句话说,如果容器的 ComponentOrientation 表示从左到右,则 X 调整值为 0.0 意味着组件的左边缘,否则它意味着组件的右边缘。

许多程序使用 Box 类,而不是直接使用 BoxLayout。Box 类是使用 BoxLayout 的轻量级容器。它还提供了一些帮助您很好地使用 BoxLayout 的便利方法。要获取您想要的排列,将组件添加到多个嵌套的 box 中是一种功能强大的方法。

© 著作权归作者所有

共有 人打赏支持
Vernayyy
粉丝 13
博文 24
码字总数 18696
作品 0
海淀
程序员
做几道基础的Java测试题,看看最近有进步吗?欢迎来学习

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

启示录是真的 ⋅ 05/24 ⋅ 0

基于可靠消息方案的分布式事务(二):Java中的事务

前言:在上一篇文章 基于可靠消息方案的分布式事务:Lottor介绍 中介绍了常见的分布式事务的解决方案以及笔者基于可靠消息方案实现的分布式事务组件Lottor的原理,并展示了应用的控制台管理。...

aoho ⋅ 06/01 ⋅ 0

Oracle Java Mission Control 帮助

缩写 含义 JDK Java 开发工具包 JDP Java Discovery Protocol JFR Java 飞行记录器 JMC Java Mission Control JMX Java Management Extensions JVM Java 虚拟机 MBean 托管 Bean (Java) RCP ......

光斑 ⋅ 04/27 ⋅ 0

Java学习---Java简单认识

前言 小编在学习Java方面的基础知识,发现里面有很多是结合之前的语言的特点发展过来的,不同的地方是,Java有它自己的发展和特点。下面小编先简单地做一下总结,结合看过的1-2章的J2SE视频,...

m18633778874 ⋅ 04/01 ⋅ 0

PHP调用java的class

PHP调用java的class 转:http://hi.baidu.com/lei0827/blog/item/28439a4e923234ced1c86a18.html PHP调用java的class有2种方法 1、种是用php自身带的模块调用java(不过经过网友的证明发现这...

thinkyoung ⋅ 2015/07/02 ⋅ 0

Flow支持Reactive Streams in Java

Java 的 JVM Flow 就是按照 reactive-stream 的 API 规范写的,来看看Flow长的什么样? 可以看到是在神奇 java.util.concurrent 包中,而且这是一个 Final 修饰的类。 java.util.concurrent...

woshixin ⋅ 06/13 ⋅ 0

70个学习JAVA必背的英语单词,了解下

以下是整理的70个在JAVA在学习JAVA的时候经常遇到的英文单词 1、Compile:编绎 2、Run:运行 3、Class:类 4、Object:对象 5、System:系统 6、out:输出 7、print:打印 8、line:行 9、variable:...

编程大侠 ⋅ 04/11 ⋅ 0

Java IDEA中安装配置JDK、Gradle

现在大多数IDE都没有集成JDK环境,IDEA也是一样,在使用IDEA之前首先要安装JDK,并且配置环境变量。与其他IDE不同之处在于,IDEA是不会自动匹配系统的JDK环境。如果在IDEA里面没有配置JDK,运...

blueberry_liang ⋅ 04/11 ⋅ 0

RecyclerView实现拖动排序和滑动删除功能

RecyclerView 的拖动排序需要借助一下 ItemTouchHelper 这个类,ItemTouchHelper 类是 Google 提供的一个支持 RecyclerView 滑动和拖动的一个使用类,下面使用该类实现 RecyclerView 的滑动删...

jzman ⋅ 05/12 ⋅ 0

Java就业变难了?你需要对自己有点信心

伴随着IT的火热,越来越多的人进入了IT领域,这在进一步推动着IT发展的同时也极大增加了就业压力。伴随着激烈的岗位竞争,越来越多的人开始感叹工作难找,越火的行业越是如此,Java自是首当其...

糖宝_d864 ⋅ 06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

面试-JVM 内存结构

JVM 内存结构

秋日芒草 ⋅ 5分钟前 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 28分钟前 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 今天 ⋅ 0

Spring JavaConfig 注解

JavaConfig注解允许开发者将Bean的定义和配置放在Java类中。它是除使用XML文件定义和配置Bean外的另一种方案。 配置: 如一个Bean如果在XML文件可以这样配置: <bean id="helloBean" class="...

霍淇滨 ⋅ 今天 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 今天 ⋅ 0

Confluence 6 重新获得站点备份文件

Confluence 将会创建备份,同时压缩 XML 文件后存储熬你的 <home-directory>/backups> 目录中。你需要自己访问你安装的 Confluence 服务器,并且从服务器上获得这个文件。 运行从 Confluence...

honeymose ⋅ 今天 ⋅ 0

informix的常用SQL语句

1、创建数据库 eg1. 创建不记录日志的库testdb,参考语句如下: CREATE DATABASE testdb; eg2. 创建带缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解...

wangxuwei ⋅ 今天 ⋅ 0

matplotlib画图

最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数。 from pylab import *from numpy import *x = linspace(0, 5, 10)y = x ** 2figure()plot(x, y, 'r')...

Dr_hu ⋅ 今天 ⋅ 0

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 今天 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部