概要

  • 在向容器中添加组件时,需要考虑组件的大小和位置。如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加,这样虽然可以控制组件的位置,实现起来却十分麻烦。
  • 为此java提供了6种布局管理器,可以将组件进行统一管理,没有布局管理器都实现LayoutManager接口

边框布局管理器

  • BorderLayout(边框布局管理器)是 Window、JFrame 和 JDialog 的默认布局管理器
  • 边框布局管理器将窗口分为 5 个区域:North、South、East、West 和 Center边框布局管理器将窗口分为 5 个区域:North、South、East、West 和 Center
  • North 表示北,将占据面板的上方;South 表示南,将占据面板的下方;East表示东,将占据面板的右侧;West 表示西,将占据面板的左侧;中间区域 Center 是在东、南、西、北都填满后剩下的区域

边框布局管理器

注意
边框布局管理器并不要求所有区域都必须有组件,如果四周的区域(North、South、East 和 West 区域)没有组件,则由 Center 区域去补充。如果单个区域中添加的不只一个组件,那么后来添加的组件将覆盖原来的组件,所以,区域中只显示最后添加的一个组件
BorderLayout构造方法

  • BorderLayout():创建一个Border布局,组件之间没有间隙
  • BorderLayout(int hgap,int vgap):创建一个Border布局,其中hgap表示组件之间的横向间隔,vgap表示组件之间的纵向间隔,单位是像素

BorderLayout类成员变量

  • 容器调用Container类的add()方法添加组件时可以设置此组件在边界布局管理器中的区域,区域的控制可以由BorderLayout类的成员变量来控制
  • BorderLayout.NORTH:在容器中添加组件时,组件置于顶端
  • BorderLayout.SOUTH:在容器中添加组件时,组件置于底端
  • BorderLayout.EAST:在容器中添加组件时,组件置于右端
  • BorderLayout.WEST:在容器中添加组件时,组件置于左端
  • BorderLayout.CENTER:在容器中添加组件时,组件置于中间开始填充,直到与其它组件边界连接

Container方法

public Component add(String name, Component comp) {addImpl(comp, name, -1);return comp;}
  • 通过add方法添加组件,设置布局

Demo01

import javax.swing.*;
import java.awt.*;public class Demo09 {public static void main(String[] args) {//创建JFrame类对象JFrame jFrame = new JFrame("边框父窗体");//获取一个容器Container container = jFrame.getContentPane();//设置窗体大小BorderLayout borderLayout = new BorderLayout();//设置JFRame窗体的布局格式jFrame.setLayout(borderLayout);JButton button1 = new JButton("NORTH");JButton button2 = new JButton("SOUTH");JButton button3 = new JButton("CENTER");JButton button4 = new JButton("WEST");JButton button5 = new JButton("EAST");container.add(BorderLayout.NORTH,button1);container.add(BorderLayout.SOUTH,button2);container.add(BorderLayout.CENTER,button3);container.add(BorderLayout.WEST,button4);container.add(BorderLayout.EAST,button5);
//        jFrame.add(button1,BorderLayout.SOUTH);jFrame.setSize(400,400);//设置窗体可见jFrame.setVisible(true);//设置窗体关闭方式jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//创建边框布局管理器类对象}
}

Demo01运行效果如下


Demo02

import javax.swing.*;
import java.awt.*;public class Demo09 {public static void main(String[] args) {//创建JFrame类对象JFrame jFrame = new JFrame("边框父窗体");//获取一个容器Container container = jFrame.getContentPane();//设置窗体大小BorderLayout borderLayout = new BorderLayout();//设置JFRame窗体的布局格式jFrame.setLayout(borderLayout);JButton button1 = new JButton("NORTH");//JButton button2 = new JButton("SOUTH");JButton button3 = new JButton("CENTER");JButton button4 = new JButton("WEST");JButton button5 = new JButton("EAST");container.add(BorderLayout.NORTH,button1);container.add(BorderLayout.SOUTH,button2);container.add(BorderLayout.CENTER,button3);container.add(BorderLayout.WEST,button4);
//        container.add(BorderLayout.EAST,button5);
//        jFrame.add(button1,BorderLayout.SOUTH);jFrame.setSize(400,400);//设置窗体可见jFrame.setVisible(true);//设置窗体关闭方式jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//创建边框布局管理器类对象}
}

Demo02运行效果如下

Demo03

  • 如果未指定布局管理器的SOUTH区域,则WEST、CENTER、EAST三个区域会填充SOUTH区域
  • 以此类推,若WEST区域未指定布局,则NORTH、CENTER、SOUTH三个区域会填WEST区域
import javax.swing.*;
import java.awt.*;public class Demo09 {public static void main(String[] args) {//创建JFrame类对象JFrame jFrame = new JFrame("边框父窗体");//获取一个容器Container container = jFrame.getContentPane();//设置窗体大小BorderLayout borderLayout = new BorderLayout();//设置JFRame窗体的布局格式jFrame.setLayout(borderLayout);JButton button1 = new JButton("NORTH");JButton button2 = new JButton("SOUTH");JButton button3 = new JButton("CENTER");JButton button4 = new JButton("WEST");JButton button5 = new JButton("EAST");container.add(BorderLayout.NORTH,button1);container.add(BorderLayout.SOUTH,button2);container.add(BorderLayout.CENTER,button3);container.add(BorderLayout.WEST,button4);
//        container.add(BorderLayout.EAST,button5);
//        jFrame.add(button1,BorderLayout.SOUTH);jFrame.setSize(400,400);//设置窗体可见jFrame.setVisible(true);//设置窗体关闭方式jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//创建边框布局管理器类对象}
}

Demo03运行效果如下

Swing布局管理器--BorderLayout(边框布局管理器)相关推荐

  1. java swing 常用的三种布局方式:边界布局、流布局、网格布局管理器

    作者:firstmiki 链接:http://www.cnblogs.com/firstmiki/p/6340001.html 来源:firstmiki的博客 著作权归作者所有,转载请联系作者获得授权 ...

  2. 027-Swing布局管理器(流布局,网格布局,边框布局)

    上一讲:026-为什么要使用接口_CSDN专家-赖老师(软件之家)的博客-CSDN博客 下一讲:028-GUI事件处理,ActionListener事件,MouseListener事件_CSDN专家- ...

  3. Swing布局管理器--流式布局管理器

    流式布局管理器 FlowLayout流式布局管理器,是JPanel和JApplet的默认布局管理 FlowLayout会将组件从上到下,从左到右的放置规律逐渐进行定位,直到占据这一行所在的空间,才会向 ...

  4. import java.awt.BorderLayout;_Swing-布局管理器之BorderLayout(边界布局)-入门

    边界布局管理器(BorderLayout)把容器的的布局分为五个位置:CENTER.EAST.WEST.NORTH.SOUTH.依次对应为:上北(NORTH).下南(SOUTH).左西(WEST).右 ...

  5. 三十、Java图形化界面设计——布局管理器之BorderLayout(边界布局)

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

  6. re管理器Java_自定义布局管理器-FormLayout

    第二部分:自定义布局管理器 在java.awt包与javax.swing包下有许多现成的布局类,比如BorderLayout.FlowLayout,还有较为复杂的.用于精确定位的布局类GridBagL ...

  7. java常用布局管理器(流布局管理器、边界布局管理器、网格布局管理器)

    在Swing中,每个组件在容器中都有一个具体的位置大小.而在容器中摆放各种组件时很难判断其具体位置和大小,使用布局管理器比程序员直接在容器中控制Swing组件的位置和大小方便得多,可以更加有效地处理整 ...

  8. 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现

    写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...

  9. 【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )

    文章目录 一.GridLayout 网格布局 二.GridLayout 构造函数 三.GridLayout 网格布局代码示例 四.GridBagLayout 网格包布局 一.GridLayout 网格 ...

最新文章

  1. android获取手机通讯录
  2. mysql登录报错:ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
  3. 数据库性能分析及调整一例
  4. java 中pc寄存器的作用_既然有PC寄存器,栈帧里的返回地址的作用是什么?
  5. 教你如何一步步将项目部署到Github
  6. doctype是什么?
  7. python基础案例教程_python基础教程 10-11例子如何执行
  8. svm java_SVM入门(十)将SVM用于多类分类
  9. 什么是数字孪生体?来自西门子、PTC、北航的精华观点和实践
  10. Spring 使用事务
  11. 为什么没人种植金丝楠木?
  12. 爱河许云上计算机乐谱,神马乐团爱河简谱
  13. 【Sencha Toucha】Sencha Touch ExtJs 给 Button 添加图片
  14. HTML+JavaScript+CSS的人员信息管理系统
  15. 联想拯救者y7000p加内存条_联想Y7000p加装金百达内存条,内存条细节多图
  16. 关于python中的三个点【...】
  17. 图解+原理推导完全读懂KPM算法
  18. 设计一个三阶巴特沃斯滤波器_设计巴特沃斯滤波器只需要确定两个参数,是什么?...
  19. 你好,世界:第一个Java程序(《Java与Python学习通法》)
  20. 大学计算机在线作业答案,上海交通大学《计算机》在线作业二参考答案

热门文章

  1. 知识点 | 数据仓库中的 ods ,dw,dm分别是个啥?
  2. 傲游“马上看”VS视频网站前贴片:谁动了谁的奶酪
  3. WinCE 应用程序开机自启动方法( 修正版本)
  4. 【信息安全服务】等级保护2.0 服务流程一览
  5. 并行通信芯片8255A学习总结
  6. C# DirectShow预览摄像头并截图
  7. shardingsphere搭建使用,以及报错解决(一)
  8. python爬虫英文单词_Python爬虫入门案例:获取百词斩已学单词列表
  9. 建立如下所示学生c语言成绩单,2010年计算机等级考试一级模拟试题11
  10. 记录自己又一次的熬夜刷剧后感想