前文已经讲了常用的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布局学习 (三)的更多相关文章

  1. Java开发学习(三十六)----SpringBoot三种配置文件解析

    一. 配置文件格式 我们现在启动服务器默认的端口号是 8080,访问路径可以书写为 http://localhost:8080/books/1 在线上环境我们还是希望将端口号改为 80,这样在访问的时 ...

  2. Java开发学习(三十七)----SpringBoot多环境配置及配置文件分类

    一.多环境配置 在工作中,对于开发环境.测试环境.生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配 ...

  3. java布局学习 (一)

    Java 程序通过jvm可以很好的移植到其他平台上,但是java 生成的图形界面样式,在不使用布局的情况下,往往需要重新设定大小,才能在新的平台上调整到最佳样式.这是由于组件的最佳大小 往往是与平台相 ...

  4. Java基础学习(三)—面向对象(上)

    一.理解面向对象       面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是 ...

  5. java布局学习(新)

    坚持学习java一段时间,最近自己需要做一个小型的系统,所以需要自己将自己的AWT知识巩固一下. 一.4大布局管理器. 1.边界布局BorderLayout 是JFrame和JDialog的默认布局方 ...

  6. JAVA多线程学习- 三:volatile关键字

    Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字. volatile,从字面上说是易变的.不稳定的,事实上,也确实如此,这个 ...

  7. Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析

    一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 使用了 Spring 框架后已经简化了我 ...

  8. java布局学习 (二)

    前文中介绍了FlowLayout和BorderLayout 本文我们将会继续介绍java中的布局方式 (3)GridLayout 网格布局 这种布局会将整个容器划分成M行*N列的网格. 如下图:    ...

  9. java web 学习三(Tomcat 服务器学习和使用2)

    一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

随机推荐

  1. 淘宝弹性布局方案lib-flexible实践

    2个月前,写过一篇文章<从网易与淘宝的font-size思考前端设计稿与工作流>总结过一些移动web中有关手机适配的一些思路,当时也是因为工作的关系分析了下网易跟淘宝的移动页面,最后才有那 ...

  2. ZeroMQ接口函数之 :zmq_msg_move - 将一个消息里面的内容移动到另一个消息里面

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_move zmq_msg_move(3)   ØMQ Manual - ØMQ/3.2.5 Name zm ...

  3. ZeroMQ接口函数之 :zmq_msg_send – 从一个socket发送一个消息帧

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_msg_send zmq_msg_send(3) ØMQ Manual - ØMQ/3.2.5 Name zmq_ ...

  4. 对称、非对称加密算,openssl生成证书(笔记)

    对称加密算法 1.密钥只有一个,加密和解密都需要同一个密钥2.DES,IDEA,AES3.明文+密钥=密文, 密文+密钥=明文4.加密速度快,系统开销小,适用大量数据的加密 非对称加密算法1.密钥由公 ...

  5. java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)可能出现的原因

    可能是因为你的服务器http连接过多,导致端口被占用,无法释放

  6. springMVC、httpClient调用别人提供的接口!!!(外加定时调用)

    import com.ibm.db.util.AppConfig; import com.ibm.db.util.JacksonUitl; import org.apache.http.HttpEnt ...

  7. jenkins使用git SCM时changelog乱码(Jenkins部署在Linux上,任务在Windows Slave上构建)

    问题原因 changelog的获取方式(git-client插件): 首先调用git whatchanged命令,读取输出字节流(UTF-8编码的Commit Message). 将字节流解码为字符串 ...

  8. 【xcode】qt程序不通过qmake,运行找不到动态库的坑

    现象:试图在一个已有项目里增加qt的代码,因此手动加入相关framework(未通过qmake生成工程),编译连接都通过,但是运行时崩溃,提示错误: dyld: Library not loaded ...

  9. python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)

    1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...

  10. ruby 随笔

    1.A Server is running获取PID lsof -wni tcp:3000关闭PID kill -9 pID2.rubymine注册码http://idea.lanyus.com/ 3 ...