Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1561130
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 19:14:47

一起学习

教 学 纲 要

介 绍做 窗 户 的 巧 手 木 匠 一 族 。

正 文

类 FlowLayout 用 类 FlowLayout 生 成 的 外 观 管 理 器 是 AWT 为 类 Panel 所 设 计 的外 观 管 理 器 。 它 是 我 们 所 使 用 的 默 认 的 外 观 管 理 器 。     “ 默 认 的 外 观 管 理 器 ” 的 意 思 就 是 说 当 我 们 没 有 在程 序 之 中 使 用 其 他 的 外 观 管 理 器 ( 如 CardLayout 、 等 ) 的时 候 , Java 就 自 动 地 使 用 FlowLayout 外 观 管 理 器 进 行 一 系 列的 外 观 管 理 工 作 。 像 我 们 前 面 的 程 序 13.1 ( 白 手 起 家 程序 ) 就 是 使 用 的 FlowLayout 来 进 行 外 观 管 理 的 。

从 程序 13.1 我 们 应 该 已 经 看 出 来 了 , FlowLayout 外 观 管 理 器 所 做的 就 是 把 程 序 之 中 的 各 个 组 件 对 象 按 照 先 后 顺 序 依 次 排开 , 从 左 到 右 , 从 上 到 下 , 依 次 地 排 。

又 例如 :

程 序 14.3

    import java.awt.*;
    public class window5 extends java.applet.Applet
    {
      public void init( ) {
        resize(150,60);
        setLayout(new FlowLayout( )); // 使 用 FlowLayout 外 观 管 理 器
        add("East",new Button(" 东 边 "));
        add("West",new Button(" 西 边 "));
        add("South",new Button(" 南 边 "));
        add("North",new Button(" 北 边 "));
        add("Center",new Button(" 中 央 "));
                    }
    }

程 序 14.3 的 运 行 结 果 如 图 14.4 所 示 :

图 14.4 程 序 14.3 的 执 行 结 果

实 际上 , 如 果 我 们 把 程 序 中 的 setLayout (new FlowLayout( )); 这 条 语句 去 掉 , 程 序 的 执 行 结 果 也 是 一 样 的 , 没 有 任 何 区 别 。这 是 因 为 FlowLayout 外 观 管 理 器 是 默 认 的 外 观 管 理 器 的 缘故 。 有 兴 趣 的 人 可 以 自 己 试 一 试 。 如 果 我 们 改 变 语 句
        resize(150,60);
为 :
        resize(300,60);

则 程序 运 行 结 果 如 图 14.5 :

图 14.5 改 变 后 的 程 序 14.3 的 执 行 结 果

我 们从 以 上 的 程 序 运 行 结 果 可 以 进 一 步 看 出 , 当 窗 口 之 中 的组 件 不 能 排 满 一 排 的 时 候 , 组 件 是 按 照 向 中 间 对 齐 的 原则 来 排 列 的 。 向 中 间 对 齐 是 默 认 的 对 齐 规 则 。

对 齐方 式 是 可 以 改 变 的 :

  • 使 用 FlowLayout.LEFT 可 以 使 得 组 件 们 向 左 边 对 齐
  • 使 用 FlowLayout.RIGHT 可 以 使 得 组 件 们 向 右 边 对 齐
  • 使 用 FlowLayout.CENTER 可 以 使 得 组 件 们 向 中 间 对齐 ( 也 就 是 默 认 的 对 齐 方 式 )

    我 们把 上 面 语 句 之 中 的 setLayout(new FlowLayout( )); 改 为 :
            setLayout(new FlowLayout(FlowLayout.LEFT));

    程 序运 行 结 果 就 会 如 下 所 示 ( 图 14.6 ) :

    图 14.6 进 一 步 改 变 后 的 程 序 14.3 的 执 行 结 果

        那 么 , 使 用 了 语 句 setLayout(new FlowLayout(FlowLayout.RIGHT)); 以 后 , 窗 口 会 变 成 什 么 样 子 呢 ? 这 个 问 题 留 着 大 家 自 己编 个 程 序 试 一 试 吧 。 好 吗 ?

    类 GridLayout

    英 文里 面 Grid 有 “ 网 格 ” 的 意 思 , GridLayout 外 观 管 理 器 也 有 这方 面 的 意 义 。 GridLayout 外 观 管 理 器 会 把 窗 口 分 成 许 多 大小 相 等 的 均 匀 网 格 , 然 后 再 一 个 格 、 一 个 格 地 往 里 放 组件 。

    既 然是 分 成 许 多 格 , 就 有 一 个 怎 么 分 的 问 题 , 到 底 分 成 多 少块 、 几 行 几 列 呢 ? 这 些 问 题 都 由 程 序 设 计 者 在 调 用 GridLayout 的 时 候 来 决 定 。 方 法 如 下 :
            GridLayout ( 行 数 , 列 数 )

    程 序 14.4
        import java.awt.*;
        public class window6 extends java.applet.Applet
        {
          public void init( ) {
            resize(300,100);
            setLayout(new GridLayout(2,3)); // 分 为 2 行 3 列
            add("East",new Button(" 东 边 "));
            add("West",new Button(" 西 边 "));
            add("South",new Button(" 南 边 "));
            add("North",new Button(" 北 边 "));
            add("Center",new Button(" 中 央 "));
                        }
        }
    运 行 结 果 如 图 14.7 :

    图 14.7 程 序 14.4 的 执 行 结 果
       如 果 所 设 置 的 网 格 数 目 比 组 件 数 目 少 , 会 怎 么 样 呢 ?比 如 上 面 的 程 序 , 如 果 设 置 为 2 行 2 列 , 程 序 的 执 行 结 果会 是 什 么 样 呢 ?
    专 家 : 这 个 问 题 问 得 很 好 , 你 可 以 自 己 改写 一 下 上 面 的 程 序 , 看 一 看 运 行 结 果 是 什 么 样 的 。 多 学多 练 , 举 一 反 三 是 学 习 的 重 要 方 法 。

 

下载本文示例代码


第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)第六讲 窗口工具(一)
阅读(134) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~