Java Swing 第03记 布局管理器
几种Swing常用的布局管理器
|
BorderLaout |
它将容器分为5个部分,即东、南、西、北、中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的位置 |
|
FlowLayout |
是按加入的先后顺序从左到有排列,一行排满了,再换行,继续从左到有排列.每一个组件都是居中排列的 |
|
GridLayout |
是将整个布局空间,划分为若干行乘若干列的网络取悦.组件就位于这些小的区域内 |
|
GridBagLayout |
是通过网格进行划分,可以看到每个组件都占据一个网格,也可以一个组件占据几个网格.有点类似GridLayout,但是比它要复杂的多 |
|
GardLaout |
将容器中的每一个组件当做一个卡片,一个仅有一个卡片可见,最初显示容器时,增加到GardLaout对象的第一个组件可见 |
|
BoxLayout |
通过允许在容器中水平或垂直的方式安排多个组件 |
|
SpringLayout |
通过定义组件边沿的关系来实现布局 |
|
GroupLayout |
指定在一个窗体上组件批次之间的关系,例如一个位置关系或对齐关系 |
案例:
代码
1 import javax.swing.JFrame;
2
3 public class FrameUtils {
4
5 public static JFrame getFrame(String text, int width, int height){
6 JFrame frame = new JFrame(text);
7 frame.setSize(width, height);
8 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
9 frame.setVisible(true);
10 return frame;
11 }
12 }
FrameUtils
import java.awt.BorderLayout; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel; import cn.java.swing.FrameUtils; /**
* @author lunatic
*
*/
public class Demo01 { public static void main(String[] args) {
JFrame frame = FrameUtils.getFrame("Demo01 For BorderLayout", 300, 200); JPanel contentPane = new JPanel();
frame.setContentPane(contentPane); JButton b1 = new JButton("生活");
JButton b2 = new JButton("工作");
JButton b3 = new JButton("睡觉");
JButton b4 = new JButton("购物");
JButton b5 = new JButton("饮食"); BorderLayout lay = new BorderLayout();
contentPane.setLayout(lay); contentPane.add(b1, BorderLayout.NORTH);
contentPane.add(b2, BorderLayout.SOUTH);
contentPane.add(b3, BorderLayout.EAST);
contentPane.add(b4, BorderLayout.WEST);
contentPane.add(b5, BorderLayout.CENTER);
}
}
Demo01
- 效果图
BorderLayout
它将容器分为5个部分,即东、南、西、北、中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的位置
构造器
|
BorderLaout() |
构造一个组件之间没有间距的新边框布局 |
|
BorderLaout(int h,int v) |
构造一个具有之间组件间距的边框布局 |
东、南、西、北、中5个区域的命名常量EAST、SOUTH、WEST、NORTH、CENTER.当向某个区域内添加空间时,就要将代表区域的命名常量作为第二个参数的值传给add方法函数,例如:add(b1,BorderLayout.NORTH)
案例:
代码:Demo1
- 效果图
FlowLayout
他是按照控件加入的先后顺序从左到右排列,一行排满换下一行;每一行的组件都是居中对齐.另外:如果有些控件看不见,可以使用方法pack自动调整Frame的大小,使得所有控件都显示出来。JFrame的默认布局管理器。
构造器
|
FlowLayout() |
构造一个FlowLayout对象,居中对齐,水平(垂直)间歇是5个单位 |
|
FlowLayout(int align) |
构造一个FlowLayout对象,水平(垂直)间歇是5个单位,设置对齐 |
|
FlowLayout(int align,int h,int v) |
构造一个FlowLayout对象,设置水平(垂直)间歇,设置对齐 |
案例:
代码
- 效果图
Java Swing 第03记 布局管理器的更多相关文章
- Java可视化编程,基于布局管理器的UI设计
在<事件驱动模型>讲述了如何将用户与功能实现代码联系到一起.怎么样便于用户理解和符合用户的使用习惯? 本篇还是就此问题作分析,站在用户角度上分析UI各组件倒底该如何设计呈现. 优秀的UI会 ...
- 第13章 Swing程序组件----常用布局管理器
在Swing中,每个组件在容器中都有一个具体的位置和大小,而在容器中摆放各种组件时很难判断其具体位置和大小.布局管理器提供了Swing组件安排.展示在容器中的方法及基本的布局功能. Swing提供的常 ...
- 2017.10.5 Java图形化界面设计——布局管理器
1.BorderLayout(边界布局) 边界布局管理器把容器的的布局分为五个位置:CENTER.EAST.WEST.NORTH.SOUTH.依次对应为:上北(NORTH).下南(SOUTH).左西( ...
- Java的GUI组件的布局管理器
1 import java.awt.BorderLayout; 2 import java.awt.FlowLayout; 3 import java.awt.Font; 4 import java. ...
- Java Swing布局管理器GridBagLayout的使用示例 [转]
GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...
- java基础 布局管理器
概念: 组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理. 种类: java共提供了物种布局管理器:流式布局管理 ...
- JAVA 流式布局管理器
//流式布局管理器 import java.awt.*; import javax.swing.*; public class Jiemian2 extends JFrame{ //定义组件 JBut ...
- Java 的布局管理器GridBagLayout的使用方法(转)
GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...
- JAVA流式布局管理器--JAVA基础
JAVA流式布局管理器的使用: FlowLayoutDeme.java: import java.awt.*;import javax.swing.*;public class FlowLayoutD ...
随机推荐
- 13 个免费的 PNG 图像的优化和压缩工具
图像格式有许多种不同类型,在互联网上最常见的有JPEG.GIF.BMP.TIFF和PNG.每一种图像格式都有它自己的用途,比如GIF是用于动画的,JPEG是用于高清图片的,这种图片在保存或者调整大小后 ...
- 即时聊天IM之一 XMPP协议简述
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: ...
- WordPress登陆页和后台面空白解决方法
真没想到我居然也会碰到这么蛋疼的事情,有一天我登陆博客,输入账号密码之后登陆没有反应,之后我就试着用首页前台登陆(因为这个模板前台带登陆功能),之后成功登陆进入后台更新文章.我想算了.这小毛病就丢那吧 ...
- 转载:[AngularJS系列] 那伤不起的provider们啊~ (Provider, Value, Constant, Service, Factory, Decorator)
来源:http://hellobug.github.io/blog/angularjs-providers/ 用AngularJS做项目,但凡用过什么service啊,factory啊,provide ...
- 开发Blog整理
开发Blog记录 清理收藏夹 太多了,来不及看了. http://blog.sina.com.cn/s/blog_67d95f40010113ec.htmlhttp://segmentfault.co ...
- python【4】-函数
一. 定义函数 定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回.如果没有return语句,函数执行完毕后也会返 ...
- checkbox设置单选
http://blog.sina.com.cn/s/blog_4550f3ca010137td.html $("*") ‘表示获取所有对象 $("#XXX" ...
- golang使用 mongo
连接集群 mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?op ...
- RMAN 命令-删除过期
手动删除日志文件后的处理,不然rman备份会出错 rman target / crosscheck archivelog all; delete expried archivelog all; 删除所 ...
- Xcode相关整理
阅读目录 javadoc格式文档注释插件 xcodekit插件 常用快捷键 XCode中快捷健字符与MAC键盘对应关系: 添加自动生成格式为javadoc文档注释的插件VVDocumenter 首先推 ...
