Swing布局管理器--BorderLayout(边框布局管理器)
概要
- 在向容器中添加组件时,需要考虑组件的大小和位置。如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加,这样虽然可以控制组件的位置,实现起来却十分麻烦。
- 为此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(边框布局管理器)相关推荐
- java swing 常用的三种布局方式:边界布局、流布局、网格布局管理器
作者:firstmiki 链接:http://www.cnblogs.com/firstmiki/p/6340001.html 来源:firstmiki的博客 著作权归作者所有,转载请联系作者获得授权 ...
- 027-Swing布局管理器(流布局,网格布局,边框布局)
上一讲:026-为什么要使用接口_CSDN专家-赖老师(软件之家)的博客-CSDN博客 下一讲:028-GUI事件处理,ActionListener事件,MouseListener事件_CSDN专家- ...
- Swing布局管理器--流式布局管理器
流式布局管理器 FlowLayout流式布局管理器,是JPanel和JApplet的默认布局管理 FlowLayout会将组件从上到下,从左到右的放置规律逐渐进行定位,直到占据这一行所在的空间,才会向 ...
- import java.awt.BorderLayout;_Swing-布局管理器之BorderLayout(边界布局)-入门
边界布局管理器(BorderLayout)把容器的的布局分为五个位置:CENTER.EAST.WEST.NORTH.SOUTH.依次对应为:上北(NORTH).下南(SOUTH).左西(WEST).右 ...
- 三十、Java图形化界面设计——布局管理器之BorderLayout(边界布局)
边界布局管理器把容器的的布局分为五个位置:CENTER.EAST.WEST.NORTH.SOUTH.依次对应为:上北(NORTH).下南(SOUTH).左西(WEST).右东(EAST),中(CENT ...
- re管理器Java_自定义布局管理器-FormLayout
第二部分:自定义布局管理器 在java.awt包与javax.swing包下有许多现成的布局类,比如BorderLayout.FlowLayout,还有较为复杂的.用于精确定位的布局类GridBagL ...
- java常用布局管理器(流布局管理器、边界布局管理器、网格布局管理器)
在Swing中,每个组件在容器中都有一个具体的位置大小.而在容器中摆放各种组件时很难判断其具体位置和大小,使用布局管理器比程序员直接在容器中控制Swing组件的位置和大小方便得多,可以更加有效地处理整 ...
- 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现
写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...
- 【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )
文章目录 一.GridLayout 网格布局 二.GridLayout 构造函数 三.GridLayout 网格布局代码示例 四.GridBagLayout 网格包布局 一.GridLayout 网格 ...
最新文章
- android获取手机通讯录
- mysql登录报错:ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
- 数据库性能分析及调整一例
- java 中pc寄存器的作用_既然有PC寄存器,栈帧里的返回地址的作用是什么?
- 教你如何一步步将项目部署到Github
- doctype是什么?
- python基础案例教程_python基础教程 10-11例子如何执行
- svm java_SVM入门(十)将SVM用于多类分类
- 什么是数字孪生体?来自西门子、PTC、北航的精华观点和实践
- Spring 使用事务
- 为什么没人种植金丝楠木?
- 爱河许云上计算机乐谱,神马乐团爱河简谱
- 【Sencha Toucha】Sencha Touch ExtJs 给 Button 添加图片
- HTML+JavaScript+CSS的人员信息管理系统
- 联想拯救者y7000p加内存条_联想Y7000p加装金百达内存条,内存条细节多图
- 关于python中的三个点【...】
- 图解+原理推导完全读懂KPM算法
- 设计一个三阶巴特沃斯滤波器_设计巴特沃斯滤波器只需要确定两个参数,是什么?...
- 你好,世界:第一个Java程序(《Java与Python学习通法》)
- 大学计算机在线作业答案,上海交通大学《计算机》在线作业二参考答案
热门文章
- 知识点 | 数据仓库中的 ods ,dw,dm分别是个啥?
- 傲游“马上看”VS视频网站前贴片:谁动了谁的奶酪
- WinCE 应用程序开机自启动方法( 修正版本)
- 【信息安全服务】等级保护2.0 服务流程一览
- 并行通信芯片8255A学习总结
- C# DirectShow预览摄像头并截图
- shardingsphere搭建使用,以及报错解决(一)
- python爬虫英文单词_Python爬虫入门案例:获取百词斩已学单词列表
- 建立如下所示学生c语言成绩单,2010年计算机等级考试一级模拟试题11
- 记录自己又一次的熬夜刷剧后感想