在Swing中,每个组件在容器中都有一个具体的位置和大小,而在容器中摆放各种组件时很难判断其具体位置和大小。布局管理器提供了Swing组件安排、展示在容器中的方法及基本的布局功能。

Swing提供的常用布局管理器包括流布局管理器、边界布局管理器和网格布局管理器

1、流布局管理器

 import java.awt.*;

 import javax.swing.*;

 public class FlowLayoutPosition extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L; public FlowLayoutPosition() {
setTitle("本窗体使用流布局管理器"); // 设置窗体标题
Container c = getContentPane();
// 设置窗体使用流布局管理器,使组件右对齐,并且设置组件之间的水平间隔与垂直间隔
setLayout(new FlowLayout(2, 10, 10));
for (int i = 0; i < 10; i++) { // 在容器中循环添加10个按钮
c.add(new JButton("button" + i));
}
setSize(300, 200); // 设置窗体大小
setVisible(true); // 设置窗体可见
// 设置窗体关闭方式
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
} public static void main(String[] args) {
new FlowLayoutPosition();
}
}

     

2、边界布局管理器

 import java.awt.*;

 import javax.swing.*;

 public class BorderLayoutPosition extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
// 定义组件摆放位置的数组
String[] border = { BorderLayout.CENTER, BorderLayout.NORTH,
BorderLayout.SOUTH, BorderLayout.WEST, BorderLayout.EAST };
String[] buttonName = { "center button", "north button",
"south button", "west button", "east button" }; public BorderLayoutPosition() {
setTitle("这个窗体使用边界布局管理器");
Container c = getContentPane(); // 定义一个容器
setLayout(new BorderLayout()); // 设置容器为边界布局管理器
for (int i = 0; i < border.length; i++) {
// 在容器中添加按钮,并设置按钮布局
c.add(border[i], new JButton(buttonName[i]));
}
setSize(350, 200); // 设置窗体大小
setVisible(true); // 使窗体可视
// 设置窗体关闭方式
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
} public static void main(String[] args) {
new BorderLayoutPosition();
}
}

3、网格布局管理器

 import java.awt.*;

 import javax.swing.*;

 public class GridLayoutPosition extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L; public GridLayoutPosition() {
Container c = getContentPane();
// 设置容器使用网格布局管理器,设置7行3列的网格
setLayout(new GridLayout(7, 3, 5, 5));
for (int i = 0; i < 20; i++) {
c.add(new JButton("button" + i)); // 循环添加按钮
}
setSize(300, 300);
setTitle("这是一个使用网格布局管理器的窗体");
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
} public static void main(String[] args) {
new GridLayoutPosition();
}
}

第13章 Swing程序组件----常用布局管理器的更多相关文章

  1. 第1组UI组件:布局管理器

    1 布局管理的来源 为了让UI在不同的手机屏幕上都能运行良好----不同手机屏幕的分辨率/尺寸并不完全相同,如果让程序手动控制每个组件的大小.位置,会给编程带来巨大的麻烦.为了解决这个问题.andro ...

  2. 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  3. Java-Swing常用布局管理器

    http://www.cnblogs.com/hthuang/p/3460234.html   5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小 ...

  4. Android UI组件:布局管理器

    为了更好的管理Android应用的用户界面中的组件,Android提供了布局管理器.通过使用布局管理器,Android应用的图形用户界面具有良好的平台无关性.通常,推荐使用布局管理器来管理组件的分布. ...

  5. Java Swing 第03记 布局管理器

    几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...

  6. android中的常用布局管理器(三)

    接上篇博客 (5)TableLayout     表格布局管理器 在android中,线性布局和表格布局用的是最多的. 在很多的输出操作中,往往会使用表格的形式对显示的数据进行排版,tablelayo ...

  7. Java的GUI组件的布局管理器

    1 import java.awt.BorderLayout; 2 import java.awt.FlowLayout; 3 import java.awt.Font; 4 import java. ...

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

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

  9. Java核心技术卷一基础知识-第9章-Swing用户界面组件-读书笔记

    第9章 Swing用户界面组件 本章内容: * Swing与模型-视图-控制器设计模式 * 布局管理概述 * 文本输入 * 选择组件 * 菜单 * 复杂的布局管理 * 对话框 本章将介绍构造功能更加齐 ...

随机推荐

  1. InnoDB表要建议用自增列做主键

    InnoDB引擎表是基于B+树的索引组织表(IOT): 每个表都需要有一个聚集索引(clustered index): 所有的行记录都存储在B+树的叶子节点(leaf pages of the tre ...

  2. mac mysql下载

    mysql下载地址:http://dev.mysql.com/downloads/mysql/,不需要账号的 mysql创建数据库,默认字符集是latin1,可以指定字符集. mac删除mysql c ...

  3. 使用HttpClient工具类测试Http接口

    一.httpClient模拟客户端 import java.util.ArrayList;import java.util.Iterator;import java.util.List;import ...

  4. ios电话监听状态

    #import "ViewController.h" #import <CoreTelephony/CTCallCenter.h> #import <CoreTe ...

  5. HTML之打开/另存为/打印/刷新/查看原文件等按钮的代码

    ■打开■ <input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开> < ...

  6. bash color

    紫色:300A24 黄色:C4A000 Tango 紫色: 200213

  7. shell脚本学习(二)

    4.cat命令 1)  cat -s    摆脱多余的空白行 2)  cat -T    将制表符显示为^I 3)  cat -n    显示行号 4) cat -b    跳过空白行,然后显示行号 ...

  8. servlet第2讲(下集)----通过HttpServlet实现一个用户登录网站(继承HttpServlet)

    1.计划框架 2.先建立Login的servlet (1)建立Login,编写代码,进行编译     (2)配置web.xml (3)重新加载,并且验证 (4)解决乱码问题 (5)再次加载,然后验证 ...

  9. UIImageView的UserInteractionEnabled什么时候为no

    UIImageView作为背景,但直接把按钮或者UITextField放在上面无法相应事件 特殊子类的覆盖 userInteractionEnabled属性默认值为YES,但UIView的一些子类中对 ...

  10. 第一天学习oc用xcode做的一个加减乘除 圆的面积计算

    #import <Foundation/Foundation.h>  //这是oc的框架 @interface jisuan : NSObject  //申明一个jisuan这样的类 并继 ...