`
Sunnie小食
  • 浏览: 54430 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Java Swing 图形化编程之布局管理器 之BorderLayout

阅读更多

布局管理器的种类有如下几种:

详见 http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html

java.awt 
类 Container

java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container

 

1.BorderLayout

    它将容器分成5个部分,即东西南北中,每个区域中可以容纳一个组件,使用的时候也是通过BorderLayout中的5个方位常量来确定组件所在的位置的。

    它是一种简单的布局策略,在使用这个布局管理器的时候,应该将其看成是一个组件,所以首先应该通过构造器创建布局管理器对象,再通过引用其中的方法和变量来对组件进行布局。

    有两种构造方法:BorderLayout();构造一个组件之间没有边距的新边框布局。

                    BorderLayout(int h,int v);构造一个具有制定组件间距的边框布局

整个容器被分成了East,West,North,South,Center五个部分。

 

程序示例如下:

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class JFrameTest {
	
	static final int WIDTH = 300;
	static final int HEIGHT = 200;
	
	public static void main(String[]args)
	{
		JFrame jf = new JFrame("BorderLayout示例");
		
		//为窗口设置大小
		jf.setSize(WIDTH, HEIGHT);
		//设置窗口默认的关闭为关闭后退出程序,否则,只是隐藏,并没有真正退出Java程序
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);//设置可见
		
		JPanel contentPane = new JPanel(); //添加中间控件
		jf.setContentPane(contentPane);
		
		JButton b1 = new JButton("东部区域");
		JButton b2 = new JButton("西部区域");
		JButton b3 = new JButton("南部区域");
		JButton b4 = new JButton("北部区域");
		JButton b5 = new JButton("中部区域");
		
		//设置为BorderLayout布局方式
		BorderLayout lay = new BorderLayout(); 
		jf.setLayout(lay);
		
		//将5个按钮基础控件加入五个区域
		contentPane.add(b1,"East");
		contentPane.add(b2,"West");
		contentPane.add(b3,"South");
		contentPane.add(b4,"North");
		contentPane.add(b5,"Center");
	}
}

 现在的程序显示的窗口因为没有控制,所以都是现在是默认的左上角位置。显示结果如下:


我们也可以将这种模式进行嵌套。

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class JFrameTest {
	
	static final int WIDTH = 600;
	static final int HEIGHT = 400;
	
	public static void main(String[]args)
	{
		JFrame jf = new JFrame("BorderLayout示例");
		
		//为窗口设置大小
		jf.setSize(WIDTH, HEIGHT);
		//设置窗口默认的关闭为关闭后退出程序,否则,只是隐藏,并没有真正退出Java程序
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);//设置可见
		
		JButton b11 = new JButton("东东");
		JButton b12 = new JButton("东西");
		JButton b13 = new JButton("东南");
		JButton b14 = new JButton("东北");
		JButton b15 = new JButton("东中");
		
		JButton b21 = new JButton("西东");
		JButton b22 = new JButton("西西");
		JButton b23 = new JButton("西南");
		JButton b24 = new JButton("西北");
		JButton b25 = new JButton("西中");
		
		JButton b31 = new JButton("南东");
		JButton b32 = new JButton("南西");
		JButton b33 = new JButton("南南");
		JButton b34 = new JButton("南北");
		JButton b35 = new JButton("南中");
		
		JButton b41 = new JButton("北东");
		JButton b42 = new JButton("北西");
		JButton b43 = new JButton("北南");
		JButton b44 = new JButton("北北");
		JButton b45 = new JButton("北中");
		
		JButton b51 = new JButton("中东");
		JButton b52 = new JButton("中西");
		JButton b53 = new JButton("中南");
		JButton b54 = new JButton("中北");
		JButton b55 = new JButton("中中");
		
		JPanel contentPane = new JPanel(); //添加中间控件
		jf.setContentPane(contentPane);
		
		//总布局为设置为BorderLayout布局方式
		BorderLayout lay = new BorderLayout(); 
		jf.setLayout(lay);
		
		//设置五个布局都为BorderLayout型的
		JPanel jp1 = new JPanel();
		JPanel jp2 = new JPanel();
		JPanel jp3 = new JPanel();
		JPanel jp4 = new JPanel();
		JPanel jp5 = new JPanel();
		
		jp1.setLayout(new BorderLayout());
		jp2.setLayout(new BorderLayout());
		jp3.setLayout(new BorderLayout());
		jp4.setLayout(new BorderLayout());
		jp5.setLayout(new BorderLayout());
		
		//将按钮加入5个panel中
		jp1.add(b11,"East");
		jp1.add(b12,"West");
		jp1.add(b13,"South");
		jp1.add(b14,"North");
		jp1.add(b15,"Center");
		
		jp2.add(b21,"East");
		jp2.add(b22,"West");
		jp2.add(b23,"South");
		jp2.add(b24,"North");
		jp2.add(b25,"Center");
		
		jp3.add(b31,"East");
		jp3.add(b32,"West");
		jp3.add(b33,"South");
		jp3.add(b34,"North");
		jp3.add(b35,"Center");
		
		jp4.add(b41,"East");
		jp4.add(b42,"West");
		jp4.add(b43,"South");
		jp4.add(b44,"North");
		jp4.add(b45,"Center");
		
		jp5.add(b51,"East");
		jp5.add(b52,"West");
		jp5.add(b53,"South");
		jp5.add(b54,"North");
		jp5.add(b55,"Center");
		
		//将5个panel加入五个区域
		contentPane.add(jp1,"East");
		contentPane.add(jp2,"West");
		contentPane.add(jp3,"South");
		contentPane.add(jp4,"North");
		contentPane.add(jp5,"Center");
	}
}

 显示结果如下:



 我把窗口大小设置大了一点,小的时候可能刚开始看不到。这个时候点一下那个窗口的边缘就行了,不过按钮都重叠着的,比较难受的说。所以把窗口弄大了一点便于观察结果。

  • 大小: 9 KB
  • 大小: 32.7 KB
0
0
分享到:
评论

相关推荐

    Swing的GridBagLayout布局应用详解(附Java源代码)

    本文通过代码示例的方式介绍了Swing的GridBagLayout布局样式的应用,不拘泥于JDK文档教条方式的陈述,图形效果图与文字相结合,讲解直观而浅显易懂,另外,示例代码中还包含了BorderLayout、FlowLayout等布局的应用...

    java程序设计填空题题库49道

    44. Swing的布局管理器主要包括_______。 答案:FlowLayout、BorderLayout、CardLayout、GridLayout、GridBogLayout、BoxLayout [考点范围] 图形用户界面 45. Java事件处理包括建立事件源、________和将事件源注册到...

    java课程设计论文个人通讯录管理系统.doc

    然后,用java解释器运 行主类: 主界面 六、具体分工 我参与设计添加页面,添加方法,删除页面,查询部分操作资以及源管理模块,背景 框格布局操作。 添加界面 删除界面 七、 程序设计 1. 主程序设计模块 package ...

    java 编程入门思考

    13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 13.3 制作按钮 13.4 捕获事件 13.5 文本字段 13.6 文本区域 13.7 标签 13.8 复选框 13.9 单选钮 13.10 下拉列表 13.11 列表框 13.11.1 handleEvent() 13.12 布局的...

    Java计算器实验报告(1).doc

    问题需求描述:Problem description 利用Java Swing设计计算器图形化界面,并实现事件的监听,以及计算器基本的加、减、乘、除、 清空、输出运算结果的操作,学习使用各种图形化界面的控件,容器,布局等,学习对 ...

    java编程基础,应用与实例

    16.3 布局管理器 248 16.3.1 BorderLayout类 248 16.3.2 FlowLayout类 249 16.3.3 GridLayout类 252 16.4 组件(Components) 253 16.4.1 标签(Label) 253 16.4.2 按钮(Button) 254 16.4.3 单行文本框...

    java学籍管理系统(access)

    (1) 现在java 图形界面设计一般运用javax.swing包. (2)设计图形界面的步骤: 设计最外层的容器如:JFrame确定容器的布局方式往容器中加其他组件(容器或标准GUI组件)编写事件处理程序. (3)一般的标准GUI...

    疯狂JAVA讲义

    11.3.2 BorderLayout布局管理器 387 学生提问:BorderLayout最多只能放置5个组件吗?那它还有什么作用? 388 11.3.3 GridLayout布局管理器 389 11.3.4 GridBagLayout布局管理器 390 11.3.5 CardLayout布局管理器...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...

    java初学者必看

    13.4.2 BorderLayout布局管理器 13.4.3 BoxLayout布局管理器 13.4.4 GridLayout布局管理器 13.5 事件处理 13.5.1 事件监听器 13.5.2 事件适配器 13.5.3 事件 13.6 举例 13.6.1 界面设计 13.6.2 运算设计...

    Java2实用教程.rar

    第17章JavaSwing基础 17 1几个重要的类 17 2中间容器 17 3各种组件 习题">Java2实用教程 rar 第1章Java入门 1 1Java的诞生 1 2Java的特点 1 3安装Sun公司的SDK 1 4一个Java程序的开发过程 1 5一个简单的Java应用...

    java自学之道

    4.2 BorderLayout边界布局 4.3 CardLayout卡式布局 4.4 GridLayout卡式布局 4.5 GridBagLayout卡式布局 4.6 BoxLayout盒式布局 5、菜单步骤 6、对话框设计 6.1 JOptionPane对话框 6.2 JDialog对话框 文字与图形处理...

    Java初学者入门教学

    13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 13.3 制作按钮 13.4 捕获事件 13.5 文本字段 13.6 文本区域 13.7 标签 13.8 复选框 13.9 单选钮 13.10 下拉列表 13.11 列表框 13.11.1 handleEvent() 13.12 布局的...

    java联想(中文)

    13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 13.3 制作按钮 13.4 捕获事件 13.5 文本字段 13.6 文本区域 13.7 标签 13.8 复选框 13.9 单选钮 13.10 下拉列表 13.11 列表框 13.11.1 handleEvent() 13.12 布局的...

    JAVA_Thinking in Java

    13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 13.3 制作按钮 13.4 捕获事件 13.5 文本字段 13.6 文本区域 13.7 标签 13.8 复选框 13.9 单选钮 13.10 下拉列表 13.11 列表框 13.11.1 handleEvent() 13.12 布局的...

    Thinking in Java简体中文(全)

    13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 13.3 制作按钮 13.4 捕获事件 13.5 文本字段 13.6 文本区域 13.7 标签 13.8 复选框 13.9 单选钮 13.10 下拉列表 13.11 列表框 13.11.1 handleEvent() 13.12 布局的...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 13.3 制作按钮 13.4 捕获事件 13.5 文本字段 13.6 文本区域 13.7 标签 13.8 复选框 13.9 单选钮 13.10 下拉列表 13.11 列表框 13.11.1 handleEvent() 13.12 布局的...

    Think in Java(中文版)chm格式

    13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 13.3 制作按钮 13.4 捕获事件 13.5 文本字段 13.6 文本区域 13.7 标签 13.8 复选框 13.9 单选钮 13.10 下拉列表 13.11 列表框 13.11.1 handleEvent() ...

Global site tag (gtag.js) - Google Analytics