java布局学习 (三)
前文已经讲了常用的4个布局了,今天再介绍最后的三个布局:
5、CardLayout
6、BoxLayout
7、空白布局null
(五)CardLayout 纸牌布局
首先这种布局不是二维布局,而是一种伪三维的布局。
容器将所有的二维控件比作一张张的纸牌(card),放在容器当中。然后根据需要,返回不同位置的控件(纸牌)。但是从界面样式上看,这就是简单的panel。
构造函数有如下两种:
CardLayout()
CardLayout(int hgap, int vgap) //参数表示卡片与边界的距离
同时提供了五个最常用的API:
target是容器,调用对应的(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )API会显示容器内对应的卡牌
first(Container target)//第一张卡牌 last(Container target)//最后一张卡牌 previous(Container target)//前一张卡牌 next(Container target)//后一张卡牌 show(Container target, String name)//根据卡牌(控件)的名字,找到指定的卡牌,并且显示
效果如图:
对每一个button绑定一个事件,这个事件可以调用容器中显示的页面。
容器中的控件也可以绑定其他事件,不单单是用来显示的。
(六)BoxLayout 箱布局
GridLayout功能不够强大,GridBagLayout使用起来又过于繁琐。为此Swing专门提出箱布局BoxLayout。
构造函数如下:
BoxLayout(Container target, int axis)
Container target是要设置的容器,
axis 代表方向,是横向还是纵向
BoxLayout的效果如下图:

BoxLayout往往与Box容器一同使用:
CreateHorizontalBox 创建一个水平布局的Box容器
CreateVerticalBox 创建一个垂直布局的Box容器
在Box内部我们可以定义三种空白组件,来调整容器内部的布局:
Glue (橡胶):组件可以弹性的收缩或扩张(在某一个方向上)
Strut(支架):组件是固定大小的(在某一个方向上)
RigidArea(刚性区域)是固(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )定大小的一片刚性区域
通过这三个空白组件,填充在其他组件的间隔位置,保证窗体在拖动时,组件的size和location可以友好的显示出来。
(七)空白布局null
空白布局是什么呢,就是GUI的界面不采取任何布局,组件在GUI界面中使用的是绝对定位。
采用如下的形式,移除原有的布局形式:
setLayout(null)
同时通过如下方法设置坐标和尺寸:
setSize() //设置尺寸
setBounds() //设置坐标和尺寸
这种方式是通过直接设定坐标和尺寸的暴(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )力的形式来进行布局的。所以设置起来非常灵活,控件之间的的距离和大小不存在互相影响的情况。但是由于这种方式采用的都是绝对的数据,这也导致GUI界面在跨平台的场景下,显得非常被动。

java布局学习 (三)的更多相关文章
- Java开发学习(三十六)----SpringBoot三种配置文件解析
一. 配置文件格式 我们现在启动服务器默认的端口号是 8080,访问路径可以书写为 http://localhost:8080/books/1 在线上环境我们还是希望将端口号改为 80,这样在访问的时 ...
- Java开发学习(三十七)----SpringBoot多环境配置及配置文件分类
一.多环境配置 在工作中,对于开发环境.测试环境.生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配 ...
- java布局学习 (一)
Java 程序通过jvm可以很好的移植到其他平台上,但是java 生成的图形界面样式,在不使用布局的情况下,往往需要重新设定大小,才能在新的平台上调整到最佳样式.这是由于组件的最佳大小 往往是与平台相 ...
- Java基础学习(三)—面向对象(上)
一.理解面向对象 面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是 ...
- java布局学习(新)
坚持学习java一段时间,最近自己需要做一个小型的系统,所以需要自己将自己的AWT知识巩固一下. 一.4大布局管理器. 1.边界布局BorderLayout 是JFrame和JDialog的默认布局方 ...
- JAVA多线程学习- 三:volatile关键字
Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字. volatile,从字面上说是易变的.不稳定的,事实上,也确实如此,这个 ...
- Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析
一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 使用了 Spring 框架后已经简化了我 ...
- java布局学习 (二)
前文中介绍了FlowLayout和BorderLayout 本文我们将会继续介绍java中的布局方式 (3)GridLayout 网格布局 这种布局会将整个容器划分成M行*N列的网格. 如下图: ...
- java web 学习三(Tomcat 服务器学习和使用2)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
随机推荐
- Android调用默认浏览器打开指定Url
业务员有需求要将一个wap站在手机上以App的形式打开,还不要嵌套WebView,只能以浏览器打开.查了点资料,就有了下面这货. package com.gzz.whyinzi; import and ...
- 如何在VS2012中使用IL Disassembler中查看项目编译生成的程序集
2016-05-26 11:48:46 测试的WPF项目 MainWindow.xaml代码 MainWindow.xaml.cs 代码 在学习WPF的时候,想验证:删除MainWindow.xaml ...
- likely && unlikely in GCC
在linux内核源码或一些比较成熟的c语言架构源码中,我们常会见到类似下面的代码: if (unlikely(!packet)) { return res_failed; } // OR if (li ...
- Git中三种文件状态及其转换
查看地址http://phplaber.iteye.com/blog/1699926
- 动态调用WebService(C#) (非常实用)
通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务.这样是使工作简单了,但是却和提供Web服务的URL.方法名 ...
- Oracle ORA-01722: 无效数字 处理方法
C# + Oralce 10G 项目中 有用参数处理Update语句.参数命名和表字段同名.执行报错: ORA-01722: 无效数字 后修改所有的参数和对应字段不同.解决. 修改前: StringB ...
- 使用staruml学习画类图
//这是startuml 把uml 转换成的java代码: public class Circle implements Ishape { private double _radius; public ...
- js中event的target和currentTarget
js 中的event是个很有用的对象,不同的浏览器,处理方式可能不一样. 我们现在只考虑标准的浏览器的情况 event是表示时间触发的产生的对象,以click事件为例. 由于冒泡的存在,event对象 ...
- AFNetwork源码解析
1.关于AFRequestSerializer: 这里分好几个部分,我们首先从NSMutableRequest的相关方法来出发: 比如我们要上传一个文件,那么需要些很麻烦的请求体: HTTP请求头我们 ...
- linux nginx 启动脚本
linux nginx 启动脚本 [root@webtest76 ~]# vi /etc/init.d/nginx #!/bin/bash # nginx Startup script for the ...