一个友好的读者界面是一款软件成功的关键因素之一。布局管理器就是用来管理读者的界面。摆放的效果直接影响到界面是否美观。布局管理器通过布局管理类来对各种读者组件进行管理。
使用布局管理器,不仅可以有序的排列组件,而且当窗体发生变化时,布局管理器很根据新版面来适配窗口大小。
如果设计时未指定组件的布局管理器,则使用默认布局管理器。默认布局管理器层次关系如图所示:

下面为大家介绍几种常用的布局管理器。

BorderLayout(边框布局)

BorderLayout是定义在AWT包中的布局管理器。BorderLayout把容器简单的划分为东、西、南、北、中5个区域,当使用该布局时,要指明组件添加在哪个区域。若为指明则默认加入到中间区域。每个区域只能加入一个组件,后加入的组件会覆盖前面一个。

构造方法

方法名 说明
BorderLayout() 构造一个组件之间没有间距的新边框布局
BorderLayout(int hgap, int vgap) 构造一个具有指定组件间距的边框布局

下面通过一个示例来演示BorderLayout的使用

使用示例

import java.awt.BorderLayout;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;/*** BorderLayout示例* * @author jianggujin**/
public class BorderLayoutDemo
{public static void main(String[] args){JFrame frame = new JFrame("BorderLayoutDemo");frame.setBounds(500, 200, 300, 300);frame.setLayout(new BorderLayout(10, 10));frame.add(new JButton("北"), BorderLayout.NORTH);frame.add(new JButton("东"), BorderLayout.EAST);frame.add(new JButton("南"), BorderLayout.SOUTH);frame.add(new JButton("西"), BorderLayout.WEST);frame.add(new JButton("中"));frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
}

运行效果:

FlowLayout(流式布局)

FlowLayout是定义在AWT包中的布局管理器。FlowLayout默认的对齐方式为居中对齐,可以在实例对象的时候指定对齐方式。FlowLayout布局方式为自左向右排列,当一行排满后自动换行。

构造方法

方法名 说明
FlowLayout() 构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位
FlowLayout(int align) 构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个单位
FlowLayout(int align, int hgap, int vgap) 创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙

下面通过一个示例来演示BorderLayout的使用

使用示例

import java.awt.FlowLayout;import javax.swing.JButton;
import javax.swing.JFrame;/*** FlowLayout示例* * @author jianggujin**/
public class FlowLayoutDemo
{public static void main(String[] args){JFrame frame = new JFrame("FlowLayoutDemo");frame.setBounds(500, 200, 300, 300);// 更改默认布局管理器为FlowLayoutframe.setLayout(new FlowLayout());for (int i = 0; i < 6; i++){frame.add(new JButton("按钮" + i));}frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
}

运行效果:

GridLayout(网格布局)

GridLayout是定义在AWT包中的布局管理器。GridLayout布局管理器将组件按照网格方式排列,将容器分成规则矩形块,每个组件尽可能占据每块空间。

构造方法

方法名 说明
GridLayout() 创建具有默认值的网格布局,即每个组件占据一行一列
GridLayout(int rows, int cols) 创建具有指定行数和列数的网格布局
GridLayout(int rows, int cols, int hgap, int vgap) 创建具有指定行数和列数的网格布局

下面通过一个示例来演示GridLayout的使用

使用示例

import java.awt.GridLayout;import javax.swing.JButton;
import javax.swing.JFrame;/*** GridLayout示例* * @author jianggujin**/
public class GridLayoutDemo
{public static void main(String[] args){JFrame frame = new JFrame("GridLayoutDemo");frame.setBounds(500, 200, 300, 300);// 更改默认布局管理器为GridLayoutframe.setLayout(new GridLayout(3, 3, 10, 10));for (int i = 0; i < 9; i++){frame.add(new JButton("按钮" + i));}frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
}

运行效果:

绝对位置布局

顾名思义,绝对位置布局就是不使用任何布局管理器,将组件放在固定的位置。正常情况下不建议使用该方式,使用这种方式组件的位置和大小不会自动适配,当容器大小改变时,组件显示效果可能会变的不理想。

使用示例

import javax.swing.JButton;
import javax.swing.JFrame;/*** 绝对位置布局示例* * @author jianggujin**/
public class AbstractLayoutDemo
{public static void main(String[] args){JFrame frame = new JFrame("绝对位置布局Demo");frame.setBounds(500, 200, 300, 300);// 设置不使用任何布局frame.setLayout(null);JButton button1 = new JButton("按钮1");// 设置组件绝对位置大小button1.setBounds(10, 10, 100, 50);frame.add(button1);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
}

运行效果:

JAVA图形界面(GUI)之布局管理器相关推荐

  1. 【Java】Java中GUI之布局管理器

    [概念] 布局管理器:是对容器中的元素进行布局管理,按照一定的规则将容器里面的元素或组件进行排放. [分类] 1.FlowLayout:流式布局管理器 2.BorderLayout:边框布局管理器 3 ...

  2. GUI(图形用户界面)之布局管理器

    布局管理器: 组件在容器中的位置和尺寸是由布局管理器决定的,每当需要重新调整屏幕大小时,都要用到布局管理器.Swing常用的布局管理器有4种,分别是FlowLayout(流式布局管理器).Border ...

  3. JAVA桌面UI编程之布局管理器

    布局管理器 为了跨平台java引入了布局管理器来管理界面,JAVA一共有6种布局管理器,下面是介绍 BorderLayout 界面分东西南北中5个方向,最多只能显示5个控件,默认放入中间,下面的程序将 ...

  4. java图形界面怎么进行布局_JAVA图形界面(GUI)之布局管理器

    一个友好的读者界面是一款软件成功的关键因素之一.布局管理器就是用来管理读者的界面.摆放的效果直接影响到界面是否美观.布局管理器通过布局管理类来对各种读者组件进行管理. 使用布局管理器,不仅可以有序的排 ...

  5. Java 图形用户界面(GUI)布局管理器

    组件不能单独存在,必须放置于容器中,组件在容器中的位置和尺寸是由布局管理器来决定的 FlowLayout(流式布局管理器) BoderLayout(边界布局管理器) GridLayout(网格布局管理 ...

  6. Java GUI(图形用户界面)-----GridLayout(网格布局管理器)详解

    GridLayout(网格布局管理器) 可以把容器分成n行m列大小相等的网格,每个网格放置一个组件,按照从左往右,从上往下的顺序依次添加,放置在Gird Layout布局管理器的组件将自动占据网格的整 ...

  7. Java可视化编程,基于布局管理器的UI设计

    在<事件驱动模型>讲述了如何将用户与功能实现代码联系到一起.怎么样便于用户理解和符合用户的使用习惯? 本篇还是就此问题作分析,站在用户角度上分析UI各组件倒底该如何设计呈现. 优秀的UI会 ...

  8. Java学习之面板与布局管理器

    - 面板 - 流布局管理器 - 网格布局管理器 - 边界布局管理器 今天我们先创建一个窗体,再创建一个容器,容器使用的是一个3行1列的网格布局管理器,然后我们在容器中添加不同布局的面板来看一下效果 1 ...

  9. Java GridBagLayout(网格包布局管理器)

    概述 GridBagLayout(网格包布局管理器)是在网格基础上提供复杂的布局,是最灵活. 最复杂的布局管理器.GridBagLayout 不需要组件的尺寸一致,允许组件扩展到多行多列.每个 Gri ...

  10. linux设置逻辑卷进不了图形界面,LVM逻辑卷管理器图形界面操作

    LVM逻辑卷管理器图形界面操作 LVM有关概念 LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间 ...

最新文章

  1. 把《c++ primer》读薄(4-2 c和c++的数组 和 指针初探)
  2. 深度解密Go语言之反射
  3. CSS实现TikTok文字抖动效果
  4. SPAW Editor .NET Edition v.2乱用:使用代码调整编辑器高度
  5. 每天工作6小时,月入过万,这个新职业火了
  6. 深度学习进阶NLP:word2vec的高速化
  7. 文字处理技术:正式开始新布局工作
  8. Julia : 1亿条记录读取测试,及几个优化点
  9. 使用番茄助手 快速注释
  10. 怎么检查计算机网络是连接,电脑怎么查看网络连接
  11. 华为路由与交换 eSight基本概述学习笔记
  12. Netty学习之读netty权威指南(一)
  13. java计算机毕业设计小小银动漫网站源码+lw文档+系统+数据库
  14. 程序员需要知道的97件事情之 ------- 谋定而后动
  15. HCIA/HCIP使用eNSP模拟MUX VLAN配置实例与MUX VLAN知识总结(VLAN隔离技术之MUX VLAN)
  16. 微生物组-扩增子16S分析和可视化(2023.2)
  17. 不用找,你想要的廊ps后期素材素材都在这里
  18. 空间统计说历史:奥德修斯的归家之路
  19. wpa_supplicant, wpa_cli用法
  20. 渣渣一记:)之HTML

热门文章

  1. window.postMessage跨文档通信
  2. GNU make manual 翻译( 一百二十一)
  3. The Future of Silverlight --December 2, 2010 at 9:00
  4. 微软WSUS服务器 3.0安装配置详解
  5. Linux kernel 编译问题记录【转】
  6. JavaScript 的面向对象编程
  7. 动画requestAnimationFrame
  8. 9个常用iptables配置实例
  9. win7下80端口被(Pid=4)占用的解决方法
  10. CentOS下的Memcache安装