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命令的用法如下:
随机推荐
- Service Locator 服务定位模式
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- HDU1426 DFS
Sudoku Killer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 如何解决google ping不通的问题。
1. 用http://ping.chinaz.com/ ping google的域名. 2. 会ping出很多ip,但是chinaz用的是测试网点去ping的,不是你本地宽带, 所以把ping出ip拷 ...
- C++实现vector
用了双向链表,快排,<<,=,[]重载,还有erase的实现比较好玩 //my Vecter ;T need "operator<" #include <i ...
- 中國區的代理協議的韓國遊戲廠商PatiGames
“與阿裏巴巴簽署旗下游戲「突突三國」在中國區的代理協議的韓國遊戲廠商PatiGames決定與阿裏巴巴終止合作.”相信這條前不久報導的新聞,很多人並不陌生,但這背後其實並不像表面那樣簡單.早在今年4月P ...
- #20145205 《Java程序设计》第5周学习总结
教材学习内容总结 1.java中的错误都会被包装为对象这是书上的一句原话,我的理解就是,在java这个大环境中,就像是流水线工厂一样,代码的编译就是进行流水线作业,代码输进来,开始的时候就是打包封装, ...
- 如何判定php环境是线程安全(TS)还是不安全(NTS)
通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版.
- php多图上传问题笔记
图片上传好用插件有,比如 uploadify ueditor html5的各种ajax上传插件,大部分都是异步,返回只是true之类,有些时候需要上传图片需要一起上传,其实可以通过操作流程来避免这个 ...
- 更换Mac记录
1. 重装Mac (1)格式化硬盘 (2)重装系统 (3)修改各种配置:电脑名.键盘等 2. 安装必要软件 (1)QQ.微信.网易云音乐等 (2)火狐.谷歌.SourceTree等 (3)安装Git ...
- 掌握Thinkphp3.2.0----模型初步
1.为什么要学习框架?框架是什么? 简单的说就是为了简单,提高开发的效率.至于什么是框架(一种规范),现在的我还不是很理解,容后再议. 学习框架最重要的就是遵循,按照开发者的意图来使用该框架. 2.t ...