http://blog.csdn.net/liujun13579/article/details/7772215

边界布局管理器把容器的的布局分为五个位置:CENTER、EAST、WEST、NORTH、SOUTH。依次对应为:上北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST),中(CENTER),如下图所示。

特征:

l  可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。

l  南、北位置控件各占据一行,控件宽度将自动布满整行。东、西和中间位置占据一行;若东、西、南、北位置无控件,则中间控件将自动布满整个屏幕。若东、西、南、北位置中无论哪个位置没有控件,则中间位置控件将自动占据没有控件的位置。

l  它是窗口、框架的内容窗格和对话框等的缺省布局。

1、  常见的构建函数和方法

构造方法摘要

BorderLayout(): 构造一个组件之间没有间距(默认间距为0像素)的新边框布局。

BorderLayout(int hgap, int vgap) :  构造一个具有指定组件(hgap为横向间距,vgap为纵向间距)间距的边框布局。

方法摘要

int

getHgap() :          返回组件之间的水平间距。

int

getVgap() :          返回组件之间的垂直间距。

void

removeLayoutComponent(Component comp): 从此边框布局中移除指定组件。

void

setHgap(int hgap):          设置组件之间的水平间距。

void

setVgap(int vgap) :          设置组件之间的垂直间距。

实例:

// BorderLayoutDemo.java

import javax.swing.*;

import java.awt.*;

public class BorderLayoutDemo extends JFrame {

public BorderLayoutDemo(){        //构造函数,初始化对象值

//设置为边界布局,组件间横向、纵向间距均为5像素

setLayout(new BorderLayout(5,5));

setFont(new Font("Helvetica", Font.PLAIN, 14));

getContentPane().add("North", new JButton("North"));     //将按钮添加到窗口中

getContentPane().add("South", new JButton("South"));

getContentPane().add("East",  new JButton("East"));

getContentPane().add("West",  new JButton("West"));

getContentPane().add("Center",new JButton("Center"));

}

public static void main(String args[]) {

BorderLayoutDemo f = new BorderLayoutDemo();

f.setTitle("边界布局");

f.pack();

f.setVisible(true);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setLocationRelativeTo(null);             //让窗体居中显示

}

}

程序执行结果如下所示:

依次注释掉东、西、南、北和中间位置添加按钮的语句,保留其它的的语句体会一下边框布局的特点。

如果想要更复杂的布局可以在东、西、南、北和中间位置添加中间容器,中间容器中再进行布局,并添加相应的组件,已达到复制补间的效果。

实例二:在中间位置中添加9个按钮。

// BorderLayoutDemo1.java

import javax.swing.*;

import java.awt.*;

public class BorderLayoutDemo1 extends JFrame {

JPanel p=new JPanel();

public BorderLayoutDemo(){

setLayout(new BorderLayout(5,5));

setFont(new Font("Helvetica", Font.PLAIN, 14));

getContentPane().add("North", new JButton("North"));

getContentPane().add("South", new JButton("South"));

getContentPane().add("East",  new JButton("East"));

getContentPane().add("West",  new JButton("West"));

//设置面板为流式布局居中显示,组件横、纵间距为5个像素

p.setLayout(new FlowLayout(1,5,5));

//使用循环添加按钮,注意每次添加的按钮对象名称都是b

//但按钮每次均是用new新生成的,所有代表不同的按钮对象。

for(int i=1;i<10;i++){

//String.valueOf(i),将数字转换为字符串

JButton b=new JButton(String.valueOf(i));

p.add(b);           //将按钮添加到面板中

}

getContentPane().add("Center",p);  //将面板添加到中间位置

}

public static void main(String args[]) {

BorderLayoutDemo1 f = new BorderLayoutDemo1();

f.setTitle("边界布局");

f.pack();  //让窗体自适应组建大小

f.setVisible(true);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setLocationRelativeTo(null);             //让窗体居中显示

}

}

程序执行效果:

转:三十、Java图形化界面设计——布局管理器之BorderLayout(边界布局)的更多相关文章

  1. 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...

  2. 三十三、Java图形化界面设计——布局管理器之null布局(空布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...

  3. 三十一、Java图形化界面设计——布局管理器之GridLayout(网格布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7772491 三十一.Java图形化界面设计--布局管理器之GridLayout(网格布局) 网 ...

  4. 转:二十七、Java图形化界面设计——容器(JFrame)

    转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...

  5. 二十七、Java图形化界面设计——容器(JFrame)

    摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的, ...

  6. Java图形化界面设计——容器(JFrame)

    Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构 ...

  7. Java 图形化界面设计(GUI)实战练习(代码)

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...

  8. 01 Java图形化界面设计——容器(JFrame)

    程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Jav ...

  9. Java图形化界面设计——中间容器(Jpanel)

    1.  将组件添加到JFrame中 方式之一: frame.getContentPane().add(childComponent) 用getContentPane()方法获得JFrame的内容面板, ...

  10. 02 Java图形化界面设计——中间容器(Jpanel)

    上一篇讲解了Jframe顶层容器,例子中生成了一个空的窗体,在实际编程过程中,一般很少将文本框.按钮等组件直接放在顶层容器中进行布局,大多数时候是通过布局管理器结合中间容器对组件进行布局设置. 1.  ...

随机推荐

  1. Linq常用查询运算符

    Linq一共包含五十几个查询运算符,常用的根据类型来区分一共有5类左右,这五类里面一些事在项目查询中经常用到的.不过linq运算符的命名十分规范,基本从字面意思就能猜测出来是干嘛用的,下面我们挑选一些 ...

  2. Dynamic CRM:解决在创建业务流程时无法选择部分实体

    在使用Dynamic CRM 业务流程的时候,会现在无法在步骤创建里选择我们想要的实体(如订单产品) 解决方法: 在SQL Server 中CRM数据库中找到[MetadataSchema].[Ent ...

  3. Asp.net日期字符串格式化显示

    我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34 如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?这里将要用到:Dat ...

  4. Asp.Net alert弹出提示信息的5种方法

    1.ClientScript.RegisterStartupScript(GetType(),"message","<script>alert('第一种方式, ...

  5. Fibonacci数列的java实现

    关于Fibonacci应该都比较熟悉,0,1,1,2,3..... 基本公式为f(n) = f(n-1) + f(n-2); f(0) = 0; f(1) =1; 方法1:可以运用迭代的方法实现: p ...

  6. UVA 11462 Age Sort(计数排序法 优化输入输出)

    Age Sort You are given the ages (in years) of all people of a country with at least 1 year of age. Y ...

  7. 管理员把我的admin权限去掉了,那么如何获得jdk zip安装呢?这篇可以帮你。

    JDK is not available as a portable zip unfortunately. However, you can: Create working JDK directory ...

  8. Lambda Expression In Java

     题记在阅读JDK源码java.util.Collections的时候在UnmodifiableCollection类中看到了这么一段代码: public void forEach(Consumer& ...

  9. Shell符号展开

    字符 展开 * 这个 “*” 字符意味着匹配文件名中的任意字符 shell 把 “*” 展开成了另外的东西 ,在 echo 命令被执行前. ~家目录 算术表达式展开 算术表达式展开使用这种格式: $( ...

  10. JQ封装切换滚动功能

    /*---------控制滚动图片v1(作者:SFLYQ)-----------Options 配置对象,(用来配置控制元素的dom位置,初始化一些必要的对象或者方法)DoIni 初始化操作(初始化元 ...