根据应用剪裁javabeans定制你的java

上传人:san****019 文档编号:70811582 上传时间:2019-01-18 格式:PPT 页数:27 大小:481.31KB
返回 下载 相关 举报
根据应用剪裁javabeans定制你的java_第1页
第1页 / 共27页
根据应用剪裁javabeans定制你的java_第2页
第2页 / 共27页
根据应用剪裁javabeans定制你的java_第3页
第3页 / 共27页
根据应用剪裁javabeans定制你的java_第4页
第4页 / 共27页
根据应用剪裁javabeans定制你的java_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《根据应用剪裁javabeans定制你的java》由会员分享,可在线阅读,更多相关《根据应用剪裁javabeans定制你的java(27页珍藏版)》请在金锄头文库上搜索。

1、根据应用剪裁JavaBeans 定制你的Java,摘 要: 对 于 可 定 制 的 组 件(Components), 开 发 者 可 以 根 据 自 己 的 需 要 剪 裁。 可 定 制 的JavaBeans 中 有 应 用 程 序 开 发 者 可 以 修 改 的 属 性(Properties) 例 如, 改 变Beans 的 外 观 和/ 或 动 作。 本 文 将 介 绍 如 何 定 制JavaBeans。 我 们 将 讨 论 属 性、 读 取 器(getter) 和 设 置 器(setter) 方 法(Mothods), 绑 定(Bound) 和 约 束(Constrained) 属 性,

2、 以 及 使 定 制 简 单 化 的 设 计 模 板(Design Pattern)。 然 后 介 绍 属 性 编 辑 器(Editors) 和 定 制 器(Customizers), 最 后 我 们 在 一 个 已 有 的JavaBeans 中 增 加 定 制 功 能。 可 定 制 的 组 件 有 更 大 的 应 用 范 围。 例 如, 对 于 一 个 电 子 表 格(Spreadsheets) Bean, 假 如 它 必 须 占 满 全 屏 幕、 与 你 的 应 用 程 序 颜 色 方 案 冲 突 或 者 只 能 以16 进 制 方 式 显 示 数 据, 不 管 它 在 其 他 方 面 的

3、 功 能 有 多 出 色, 你 恐 怕 不 能 用 它。 JavaBeans 规 范 对 简 单 情 况 提 供 了 非 常 简 单 的 识 别、 修 改 属 性 的 特 征, 对 复 杂 的 情 况 提 供 了 扩 展。,本 文 将 研 究JavaBeans 的 定 制 接 口、 组 件 属 性、 以 及 如 何 编 写 你 的Beans 使 得 集 成 开 发 环 境(IDEs) 可 以 将 这 些 属 性 显 示 给 应 用 程 序 开 发 者。 我 们 还 将 讨 论 以 下 的 问 题: 绑 定 和 约 束 属 性, 它 们 可 以 方 便Beans 之 间 通 信 和 维 持 一

4、致 性; 定 制 器, 它 可 以 使 我 们 更 方 便 地 定 制;BeanBox 的 使 用, 它 是Sun 免 费 提 供 的JavaBeans 测 试 工 具。 什 么 是 定 制 软 件 组 件 是 通 用 的 功 能 和 数 据 模 块, 它 可 以 在 很 多 情 况 下 使 用, 软 件 组 件 的 定 制 是 很 重 要 的, 如 果 应 用 程 序 开 发 者 可 以 控 制 其 外 观 和 行 为, 它 才 能 在 很 多 应 用 程 序 中 得 到 应 用。 例 如, 如 果 一 个 按 钮 类 的 文 本 标 签 总 是“Button”, 与 之 相 关 的 动 作

5、 总 是 重 启 计 算 机( 虽 然 在 一 些 操 作 系 统 中 这 可 能 是 最 有 用 的 工 具 之 一) 的 话, 那 它 是 没 有 多 大 用 处 的。,简 单 的 组 件, 如 按 钮 都 有 很 多 开 发 者 可 以 控 制 的 属 性, 其 中 包 括: 是 否 使 能 动 作 背 景 颜 色 文 本 颜 色 大 小 位 置 形 状 标 签 文 本 当 按 此 按 钮 时 播 放 的 声 音 文 件,复 杂 的 组 件 需 要 更 多 的 定 制。 定 制 一 个 远 程 数 据 库 连 接 可 能 从 可 用 的 服 务 器 列 表 中 进 行 选 择( 信 息

6、只 有 在 运 行 时 才 可 用)、 选 择 协 议( 同 上)、 指 定 用 户 名 和 密 码 和 设 置 通 过 防 火 墙 访 问。 Beans 的 属 性 一 般 说 来, 定 制 就 是 配 置Beans 的 内 部 状 态, 使 其 外 观 和 行 为 适 合 所 用 的 环 境。 这 些 内 部 状 态( 颜 色、 大 小 和 密 码 字 符 串 等) 在JavaBeans 规 范 里 称 为 属 性。Beans 中 的 属 性 可 以 用 称 为 访 问 器(Accessors) 的 方 法 读 取 和 修 改。 一 个 访 问 器 方 法 是 读 取 属 性 值 的get

7、ter 方 法, 或 者 是 修 改 属 性 值 的setter 方 法。 在 按 钮Beans 中 有String getLabel() 方 法, 它 返 回Beans 的 当 前 标 签, 有void setLabel(String newLabel) 方 法, 它 设 置Beans 的 当 前 标 签, 只 有getter 方 法 的 属 性 是 只 读 的。,为 什 么 不 简 单 地 访 问Beans 内 部 地 数 据 成 员, 直 接 读 取 和 修 改 它 们, 而 是 编 写 一 些 访 问 器 呢 ? 因 为 不 能 保 证 属 性 和Beans 内 部 的 成 员 数 据

8、 直 接 对 应。 例 如,Beans 中 的 标 签 属 性 可 能 是 一 个AWT 标 签 对 象, 但 是 也 可 能 不 是。 标 签 文 本 可 能 来 自 数 据 库, 可 能 是 另 一 个Bean 的 标 签, 也 可 能 当 需 要 时 形 成 一 个 标 签。 访 问 器 方 法 是Beans 中 属 性 的 统 一 接 口, 它 隐 藏 了 属 性 的 实 现 细 节。 这 是 好 的 面 向 对 象 编 程 惯 例, 因 为 它 减 小 了 对 象 间 的 依 赖 和“ 耦 合”。 符 合JavaBeans 规 范 的 集 成 开 发 环 境 能 分 析Beans,

9、找 到 它 的 属 性, 同 时 它 还 能 给 每 种 属 性 创 建 直 观 的 显 示( 称 为 属 性 编 辑 器), 允 许 开 发 者 在 设 计 时 修 改 属 性。 当 开 发 者 将 一 个Bean 放 入 应 用 程 序 中 时, 集 成 开 发 环 境 在 面 板 上 画 出 此Bean, 然 后 显 示 属 性 表, 它 是Bean 所 有 属 性 的 简 单 列 表, 每 个 属 性 有 一 个 对 应 的 编 辑 器。 集 成 开 发 环 境 调 用 所 有 的getter 方 法, 将Bean 中 当 前 属 性 值 显 示 在 属 性 表。 当 开 发 者 修

10、改 属 性 表 中 的 属 性 时, 集 成 开 发 环 境 调 用 相 应 的setter 方 法, 更 新 所 选Bean 中 的 相 关 属 性。,对 低 等 到 中 等 复 杂 度 的Beans, 在 设 计 时 调 用setter 方 法 配 置 它 往 往 已 经 足 够。 为 了 支 持 复 杂Beans 更 高 程 度 的 定 制, 规 范 中 定 义 了 定 制 器(customizer) 类。 开 发 者 可 以 扩 充Beans, 这 就 为 实 现 任 何 类 型 的 定 制 打 开 了 方 便 之 门: 复 杂 的 颜 色 拾 取 器、 图 形 化 的 网 络 配 置

11、 精 灵, 只 要 你 愿 意, 甚 至 可 以 编 写 一 个VRML 界 面。 实 际 上, 以 上 描 述 的 属 性 表 可 以 看 作 是 集 成 开 发 环 境 自 动 产 生 的 定 制 器。 这 种 模 式 在JavaBeans 框 架 中 是 常 见 的: 简 单 的 情 况( 在 这 种 情 况 下, 简 单 的 属 性 类 型 已 有 属 性 编 辑 器) 往 往 只 须 很 少 或 根 本 不 须 工 作, 但 是 其 中 隐 藏 着 对 复 杂 情 况 的 访 问 方 法。 如 何 使Beans 可 定 制 JavaBeans 框 架 使 创 建 有 可 定 制 属

12、性 的Beans 变 得 相 当 容 易。 大 部 分 情 况 下, 根 本 无 须 写 任 何 代 码。 这 是 因 为JavaBeans 规 范 定 义 了 命 名 约 定, 集 成 开 发 环 境 可 用 它 来 推 断 与 属 性 相 关 的 方 法。 规 范 中 将 这 种 约 定 称 作 设 计 模 板。 如 果 不 考 虑 语 义 原 则 的 话 则 很 简 单: 名 字、 返 回 值 和 参 数 类 型 决 定 了 属 性 的 名 字 和 类 型。 当 集 成 开 发 环 境 装 载Beans 时, 使 用JDK 1.1 reflection 机 制 检 查Beans 中 所

13、有 的 方 法, 寻 找 以get 和set 开 头 的 方 法, 然 后 将 属 性 加 入 到 属 性 表 中, 以 便 开 发 者 定 制Beans。,定 制Beans 我 们 可 以 看 一 个 具 体Bean 定 制 的 例 子: 扩 展 一 个 简 单 的BarChart Bean。 读 源 程 序 便 可 以 发 现:BarChart Bean 已 经 有 符 合 规 范 中 设 计 模 板 的 读 取 器 和 设 置 器 方 法 void setPercent(int iPercent) 和int getPercent()。 换 句 话 说, 它 已 经 有 一 个 属 性:p

14、ercent。 将BarChart Bean 装 载 入BeanBox 中 看 有 什 么 发 生。 图1 BeanBox 中 的Barchat 图 的 左 边 是 一 个 包 括 可 用Beans 的 面 板, 便 于 在BeanBox 中 放 置。 中 部 是BeanBox 本 身,BarChart 已 被 选 择, 而 右 边 是BarChart 的 属 性 列 表。 属 性 列 表 中 包 括 五 个 属 性: 前 景 和 背 景(Color 类 型)、 字 体(Font 类 型)、percent( 整 数) 和 名 字( 字 符 串)。 当BeanBox 装 载BarChart 时,

15、 发 现int getPercent 和void setPercent(int iPercent) 方 法, 便 将percent 看 作 是Bean 的 一 个 属 性, 并 将 它 以 及 一 个 整 型 数 属 性 编 辑 器(percent 标 签 右 边 的 文 本 框) 加 入 到 属 性 表 中。 调 用getPercent() 函 数 填 充 属 性 编 辑 器 的 值( 本 例 中 值 为0)。 对 属 性 表 中 的 所 有 属 性 都 做 同 样 的 处 理。,BarChart 只 定 义 了percent 属 性, 那 其 它 属 性 是 从 哪 里 来 的 呢 ? 因

16、 为BarChart 定 义 为: public class BarChart extends Canvas implements Serializable。 BarChart 继 承 了java.awt.Canvas, 而 它 又 继 承 了java.awt.Component, 它 定 义 了Color getForeground(),void setForeground(Color) 等。 这 意 味 着, 如 果 你 定 义 一 个Bean 的 子 类, 你 便 巧 妙 地 得 到 一 个 包 括 父Bean 所 有 属 性 的 新Bean。 当 你 在BeanBox 的 属 性 表 中 修 改 属 性 时,Bean 马 上 就 被 更 新。 在percent 的 属 性 编 辑 器 中 输 入“62“,BeanBox 便 做 出 相 应 的 反 应, 如 图2 所 示。 图2 62% 的BarChart 集 成 开 发 环 境( 本 例 为BeanBox), 检 测 到percent 属 性 编 辑 器 的 值 改 变, 便 调 用setPerce

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号