Swing组件不能单独存在,必须放置于容器当中,组件在容器中的位置和尺寸是由布局管理器来决定的。

Swing提供了8种布局管理器,分别是BorderLayout(边界布局管理器),BoxLayout(箱式布局管理器),CardLayout(卡片布局管理器),FlowLayout(流式布局管理器),GridBagLayout(网格包布局管理器),GridLayout(网格布局管理器),GroupLayout(分组布局管理器)和SpringLayout(弹性布局管理器)。

1.BorderLayout

它将容器划分为5个区域,页头(PAGE_START),页尾(PAGE_END),行首(LINE_START),行尾(LINE_END),中部(CENTER)

import java.awt.BorderLayout;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;public class Example03 {private static void CreateAndShowGUI() {//创建一个名为BorderLayout的顶级容器窗口JFrame f=new JFrame("BoderLayout");///设置窗体中布局管理器为Borderlayoutf.setLayout(new BorderLayout());f.setSize(300,300);//设置窗体大小f.setLocation(300,200);//设置窗体显示位置//创建5个按钮组件JButton bu1=new JButton("PAGE_START");JButton bu2=new JButton("PAGE_END");JButton bu3=new JButton("LINE_START");JButton bu4=new JButton("LINE_END");JButton bu5=new JButton("CENTER");//将创建的按钮添加至容器中,并设置按钮所在的区域f.add(bu1,BorderLayout.PAGE_START);f.add(bu2,BorderLayout.PAGE_END);f.add(bu3,BorderLayout.LINE_START);f.add(bu4,BorderLayout.LINE_END);f.add(bu5,BorderLayout.CENTER);f.setVisible(true);//设置窗体可见f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}public static void main(String[] args) {SwingUtilities.invokeLater(Example03::CreateAndShowGUI);}}

结果如:

JFrame默认使用BorderLayout布局管理器。使用BorderLayout布局管理器时,如果不指定添加到哪一个区域时,默认CENTER区域,并且每一个区域只能放置一个组件,向一个区域添加多个组件时,后放入的组件会覆盖先放入的组件。

2.FlowLayout

流式布局管理器,容器会将组件按照添加顺序从左向右放置,当到达容器边界时,会自动将组件放到下一行的开始位置。这些组件可以按左对齐,按右对齐,居中对齐(默认方式)排列。

FlowLayout类的三个构造方法。

方法声明                                       功能描述

FlowLayout()           组件默认居中对齐,水平、垂直间距默认为5个单位

FlowLayout(int align)   指定组件相对于容器的对齐方式,水平,垂直间距默认为5个单位

FlowLayout(int align,int hgap,int vgap)  指定组件的对齐方式和水平,垂直间距。 

align的常量:FlowLayout.LEFT、FlowLayout.RIGHT、FlowLayout.CENTER.

hgap(水平),cgap(垂直)组件之间的距离。


import java.awt.Button;
import java.awt.FlowLayout;import javax.swing.JFrame;
import javax.swing.SwingUtilities;public class Example04 {private static void createAndShowGUI() {//创建一个名为FlowLayout的窗体JFrame F=new JFrame("FlowLayout");//设置窗体中布局管理器为:FlowLayout,//所有组件左对齐,水平间距为20,垂直间距为30F.setLayout(new FlowLayout(FlowLayout.LEFT,20,30));F.setSize(400,200);//设置窗体大小F.setLocation(300,200);//设置窗体显示位置//向容器加入组件F.add(new Button("第1个按钮"));F.add(new Button("第2个按钮"));F.add(new Button("第3个按钮"));F.add(new Button("第4个按钮"));F.add(new Button("第5个按钮"));F.setVisible(true);//设置窗体可见F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
public static void main(String[] args) {SwingUtilities.invokeLater(Example04::createAndShowGUI);
}
}

结果:

3.GridLayout

网格布局管理器使用纵横线将容器分成n行m列大小相等的网格,每个网格中可以添加一个组件。首先放在第一行第一列依次从左向右放置其他组件,行满后,继续从下一行中从左向右放置。组件自动占满整个网格。GridLayout类又三个构造方法。

方法声明                  功能描述

GridLayout()         默认只有一行,每个组件占一列

GridLayout(int rows,int cols)    指定容器的行数和列数

GridLayout(int rows,int cols,int hgap,int vgap)  指定容器的行数和列数以及组件之间的水平、垂直间距


import java.awt.Button;
import java.awt.GridLayout;import javax.swing.JFrame;
import javax.swing.SwingUtilities;public class Example05 {private static void createAndShowGUI() {//创建一个名为GridLayout的窗体JFrame f=new JFrame("GridLayout");f.setLayout(new GridLayout(3,3));//设置窗体为3*3的网格f.setSize(300,300);//设置窗体大小f.setLocation(400, 300);//设置窗体显示位置//循环添加8个按钮到GridLayout容器中for(int i=1;i<9;i++) {Button btn=new Button("btu"+i);f.add(btn);}f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
public static void main(String[] args) {SwingUtilities.invokeLater(Example05::createAndShowGUI);
}
}

结果:

Java GUI-布局管理器相关推荐

  1. Java Swing布局管理器(详解版)

    在使用 Swing 向容器添加组件时,需要考虑组件的位置和大小.如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加.这样虽然能够灵活控制组件的位置,实现却非常麻烦 ...

  2. java的布局管理器_Java中提供了几种布局管理器

    近日,很多网友都在关注Java中提供了几种布局管理器这个话题,那么Java中提供了几种布局管理器具体情况是怎么样的呢?Java中提供了几种布局管理器的相关信息有哪些?下面的内容是小编为大家找到的关于J ...

  3. java 网格布局管理器,Java图形化界面设计——布局管理器之GridLayout(网格布局)...

    网格布局特点: l  使容器中的各组件呈M行×N列的网格状分布. l  网格每列宽度相同,等于容器的宽度除以网格的列数. l  网格每行高度相同,等于容器的高度除以网格的行数. l  各组件的排列方式 ...

  4. java中布局管理器flowlayout,在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型。...

    在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型. 答:jFrame.setLayout(new FlowLayout() ) 在Word 2010的编辑状态,当前编 ...

  5. JAVA 边界布局管理器

    //边界布局管理器 import java.awt.*; import javax.swing.*; public class Jiemian1 extends JFrame{//定义组件 JButt ...

  6. Java 的布局管理器GridBagLayout的使用方法【图文说明】

    GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...

  7. java 网格布局管理器,Java使用网格组布局管理器

    package com.han; import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.Grid ...

  8. Java Swing布局管理器

    引言 在使用 Swing 向容器添加组件时,需要考虑组件的位置和大小.如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加.这样虽然能够灵活控制组件的位置,实现却非 ...

  9. java中布局管理器flowlayout_JAVA基础:FlowLayout布局管理器

    在前面的例子中,使用到了FlowLayout布局管理器.FlowLayout型布局管理器对容器中组件进行布局的方式是将组件逐个地安放在容器中的一行上.一行放满后就另起一个新行. FlowLayout有 ...

  10. Java AWT 布局管理器

    目录 布局管理器 1. 流式布局管理器 2. 边界布局管理器 3. 网格布局管理器 4. 网格包布局管理器 5. 卡片布局管理器 6. 自定义布局 布局管理器 在 java.awt 包中提供了 5 种 ...

最新文章

  1. 如何解决头文件重复包含和宏的重复定义问题:用#ifndef 、#define、#endif
  2. LiveJournal发展历程
  3. 通过Spring Integration和RabbitMQ获得高可用性的AMQP支持的消息通道
  4. 怎么打包图片_怎么将许多张照片打包发到邮箱?
  5. 写代码用什么笔记本_1—2千预算,编程、写代码、办公、PS修图笔记本推荐/选购指南...
  6. 世界第一个无人机快递网络下月在瑞士运营 物品 30 分钟内可达
  7. scratch python插件_Scratch3.0设计的插件系统(上篇)
  8. python学习手册-python学习手册第5版pdf
  9. winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated
  10. POJ - 1179
  11. Altium-Designer6.9安装报错Application Error
  12. 2011 imac 固态_iMac (27 英寸, 2011 年中) - 技术规格
  13. php 安装、使用sphinx
  14. 融入动画技术的交互应用-雪花
  15. 获得除当前元素外的所有其他元素,并对其他元素进行设置
  16. redis5大数据结构
  17. yum 下载离线包 及其安装
  18. office尾注后继续插入正文
  19. 无锡设计培训——室内设计方案图纸包括哪些?
  20. php主动推送弹幕_【转载】如何使用PHP构建一个高性能的弹幕后端服务

热门文章

  1. jQuery 效果 - fadeTo() 方法
  2. 监控宝 安装使用指南
  3. html列表边框有弧度,CSS边框带弧度代码怎么写
  4. 梦幻诛仙mysql_梦幻诛仙回合制手游12个职业完整双端|内含详细搭建视频过程
  5. html 获取radio状态,html关于点击radio触发事件
  6. 转 -- Oracle Interested Transaction List (ITL) Waits
  7. Essential Grammar in Use(Third Edition)--Present perfect Unit17
  8. Pandas:波浪号“~”在 pandas 中的用法
  9. 百度地图API显示多个标注点带提示的代码 / 单个标注点带提示代码
  10. 如何将2万条数据快速导入到 MySQL?