亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

定制你的Java--根據應用剪裁JavaBeans

2019-11-18 12:05:11
字體:
來源:轉載
供稿:網友

  本 文 將 研 究javaBeans 的 定 制 接 口、 組 件 屬 性、 以 及 如 何 編 寫 你 的Beans 使 得 集 成 開 發 環 境(IDEs) 可 以 將 這 些 屬 性 顯 示 給 應 用 程 序 開 發 者。 我 們 還 將 討 論 以 下 的 問 題: 綁 定 和 約 束 屬 性, 它 們 可 以 方 便Beans 之 間 通 信 和 維 持 一 致 性; 定 制 器, 它 可 以 使 我 們 更 方 便 地 定 制;BeanBox 的 使 用, 它 是Sun 免 費 提 供 的JavaBeans 測 試 工 具。
  
  什 么 是 定 制
  軟 件 組 件 是 通 用 的 功 能 和 數 據 模 塊, 它 可 以 在 很 多 情 況 下 使 用, 軟 件 組 件 的 定 制 是 很 重 要 的, 如 果 應 用 程 序 開 發 者 可 以 控 制 其 外 觀 和 行 為, 它 才 能 在 很 多 應 用 程 序 中 得 到 應 用。 例 如, 如 果 一 個 按 鈕 類 的 文 本 標 簽 總 是“Button”, 與 之 相 關 的 動 作 總 是 重 啟 計 算 機( 雖 然 在 一 些 操 作 系 統 中 這 可 能 是 最 有 用 的 工 具 之 一) 的 話, 那 它 是 沒 有 多 大 用 處 的。
  
  簡 單 的 組 件, 如 按 鈕 都 有 很 多 開 發 者 可 以 控 制 的 屬 性, 其 中 包 括:
  
  是 否 使 能
  
  動 作
  
  背 景 顏 色
  
  文 本 顏 色
  
  大 小
  
  位 置
  
  形 狀
  
  標 簽 文 本
  
  當 按 此 按 鈕 時 播 放 的 聲 音 文 件
  復 雜 的 組 件 需 要 更 多 的 定 制。 定 制 一 個 遠 程 數 據 庫 連 接 可 能 從 可 用 的 服 務 器 列 表 中 進 行 選 擇( 信 息 只 有 在 運 行 時 才 可 用)、 選 擇 協 議( 同 上)、 指 定 用 戶 名 和 密 碼 和 設 置 通 過 防 火 墻 訪 問。
  
  Beans 的 屬 性
  一 般 說 來, 定 制 就 是 配 置Beans 的 內 部 狀 態, 使 其 外 觀 和 行 為 適 合 所 用 的 環 境。 這 些 內 部 狀 態( 顏 色、 大 小 和 密 碼 字 符 串 等) 在JavaBeans 規 范 里 稱 為 屬 性。Beans 中 的 屬 性 可 以 用 稱 為 訪 問 器(accessors) 的 方 法 讀 取 和 修 改。 一 個 訪 問 器 方 法 是 讀 取 屬 性 值 的getter 方 法, 或 者 是 修 改 屬 性 值 的setter 方 法。 在 按 鈕Beans 中 有String getLabel() 方 法, 它 返 回Beans 的 當 前 標 簽, 有void setLabel(String newLabel) 方 法, 它 設 置Beans 的 當 前 標 簽, 只 有getter 方 法 的 屬 性 是 只 讀 的。
  
  為 什 么 不 簡 單 地 訪 問Beans 內 部 地 數 據 成 員, 直 接 讀 取 和 修 改 它 們, 而 是 編 寫 一 些 訪 問 器 呢 ? 因 為 不 能 保 證 屬 性 和Beans 內 部 的 成 員 數 據 直 接 對 應。 例 如,Beans 中 的 標 簽 屬 性 可 能 是 一 個AWT 標 簽 對 象, 但 是 也 可 能 不 是。 標 簽 文 本 可 能 來 自 數 據 庫, 可 能 是 另 一 個Bean 的 標 簽, 也 可 能 當 需 要 時 形 成 一 個 標 簽。 訪 問 器 方 法 是Beans 中 屬 性 的 統 一 接 口, 它 隱 藏 了 屬 性 的 實 現 細 節。 這 是 好 的 面 向 對 象 編 程 慣 例, 因 為 它 減 小 了 對 象 間 的 依 賴 和“ 耦 合”。
  
  符 合JavaBeans 規 范 的 集 成 開 發 環 境 能 分 析Beans, 找 到 它 的 屬 性, 同 時 它 還 能 給 每 種 屬 性 創 建 直 觀 的 顯 示( 稱 為 屬 性 編 輯 器), 允 許 開 發 者 在 設 計 時 修 改 屬 性。 當 開 發 者 將 一 個Bean 放 入 應 用 程 序 中 時, 集 成 開 發 環 境 在 面 板 上 畫 出 此Bean, 然 后 顯 示 屬 性 表, 它 是Bean 所 有 屬 性 的 簡 單 列 表, 每 個 屬 性 有 一 個 對 應 的 編 輯 器。 集 成 開 發 環 境 調 用 所 有 的getter 方 法, 將Bean 中 當 前 屬 性 值 顯 示 在 屬 性 表。 當 開 發 者 修 改 屬 性 表 中 的 屬 性 時, 集 成 開 發 環 境 調 用 相 應 的setter 方 法, 更 新 所 選Bean 中 的 相 關 屬 性。
  
  對 低 等 到 中 等 復 雜 度 的Beans, 在 設 計 時 調 用setter 方 法 配 置 它 往 往 已 經 足 夠。 為 了 支 持 復 雜Beans 更 高 程 度 的 定 制, 規 范 中 定 義 了 定 制 器(customizer) 類。 開 發 者 可 以 擴 充Beans, 這 就 為 實 現 任 何 類 型 的 定 制 打 開 了 方 便 之 門: 復 雜 的 顏 色 拾 取 器、 圖 形 化 的 網 絡 配 置 精 靈, 只 要 你 愿 意, 甚 至 可 以 編 寫 一 個VRML 界 面。 實 際 上, 以 上 描 述 的 屬 性 表 可 以 看 作 是 集 成 開 發 環 境 自 動 產 生 的 定 制 器。 這 種 模 式 在JavaBeans 框 架 中 是 常 見 的: 簡 單 的 情 況( 在 這 種 情 況 下, 簡 單 的 屬 性 類 型 已 有 屬 性 編 輯 器) 往 往 只 須 很 少 或 根 本 不 須 工 作, 但 是 其 中 隱 藏 著 對 復 雜 情 況 的 訪 問 方 法。
  
  如 何 使Beans 可 定 制
  JavaBeans 框 架 使 創 建 有 可 定 制 屬 性 的Beans 變 得 相 當 容 易。 大 部 分 情 況 下, 根 本 無 須 寫 任 何 代 碼。 這 是 因 為JavaBeans 規 范 定 義 了 命 名 約 定, 集 成 開 發 環 境 可 用 它 來 推 斷 與 屬 性 相 關 的 方 法。 規 范 中 將 這 種 約 定 稱 作 設 計 模 板。 如 果 不 考 慮 語 義 原 則 的 話 則 很 簡 單: 名 字、 返 回 值 和 參 數 類 型 決 定 了 屬 性 的 名 字 和 類 型。 當 集 成 開 發 環 境 裝 載Beans 時, 使 用JDK 1.1 reflection 機 制 檢 查Beans 中 所 有 的 方 法, 尋 找 以get 和set 開 頭 的 方 法, 然 后 將 屬 性 加 入 到 屬 性 表 中, 以 便 開 發 者 定 制Beans。
  
  定 制Beans
  我 們 可 以 看 一 個 具 體Bean 定 制 的 例 子: 擴 展 一 個 簡 單 的BarChart Bean。 讀 源 程 序 便 可 以 發 現:BarChart Bean 已 經 有 符 合 規 范 中 設 計 模 板 的 讀 取 器 和 設 置 器 方 法 ─ ─void setPercent(int ipercent) 和int getPercent()。 換 句 話 說, 它 已 經 有 一 個 屬 性:percent。 將BarChart Bean 裝 載 入BeanBox 中 看 有 什 么 發 生。
  
  圖 的 左 邊 是 一 個 包 括 可 用Beans 的 面 板, 便 于 在BeanBox 中 放 置。 中 部 是BeanBox 本 身,BarChart 已 被 選 擇, 而 右 邊 是BarChart 的 屬 性 列 表。 屬 性 列 表 中 包 括 五 個 屬 性: 前 景 和 背 景(Color 類 型)、 字 體(Font 類 型)、percent( 整 數) 和 名 字( 字 符 串)。 當BeanBox 裝 載BarChart 時, 發 現int getPercent 和void setPercent(int iPercent) 方 法, 便 將percent 看 作 是Bean 的 一 個 屬 性, 并 將 它 以 及 一 個 整 型 數 屬 性 編 輯 器(percent 標 簽 右 邊 的 文 本 框) 加 入 到 屬 性 表 中。 調 用getPercent() 函 數 填 充 屬 性 編 輯 器 的 值( 本 例 中 值 為0)。 對 屬 性 表 中 的 所 有 屬 性 都 做 同 樣 的 處 理。
  
  BarChart 只 定 義 了percent 屬 性, 那 其 它 屬 性 是 從 哪 里 來 的 呢 ? 因 為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 所 示。
  
  集 成 開 發 環 境( 本 例 為BeanBox), 檢 測 到percent 屬 性 編 輯 器 的 值 改 變, 便 調 用setPercent() 更 新BarChart 的percent。
  
  如 果 你 的 應 用 程 序 正 好 需 要 一 個 藍 色 背 景、 兩 點 的 黑 色 邊 框 和 對 選 擇 百 分 比 填 充 紅 色,25 乘150 的BarChart, 一 切 都 很 好。
  
  好 在 我 們 有 此Bean 的 源 代 碼, 我 們 可 以 增 加 一 些 新 屬 性:Color 型fillColor、floodColor 和borderColor, 整 型borderWidth、barHeight 和barWidth。 作 為 例 子, 我 們 增 加floodColor() 訪 問 器。 我 們 首 先 定 義 填 充 顏 色PRivate Color fgColor_ = Color.red。 為 了 避 免 與java.awt.Component 的 前 景 和 背 景 屬 性 相 混 淆, 我 們 更 名 為floodColor, 并 編 寫 它 的 訪 問 器:
  
  private Color floodColor_ = Color.red;
  public void setFloodColor(Color floodColor)
  {
     floodColor_ = floodColor;
  }
  
  public Color getFloodColor()
  {
     return floodColor_;
  }
  
  對 其 他 屬 性 也 可 增 加 類 似 的 訪 問 器, 這 就 形 成 了 一 個 靈 活 的 新Bean 的 新 類 文 件。
  
  到 此,BarChart 就 是 可 定 制 的 了。 我 們 可 以 將 它 們 設 置 成 我 們 喜 歡 的 外 觀, 如 圖3 所 示。
  
  我 們 可 以 看 到 四 個BarChart Beans, 每 個 用 不 同 的 顏 色 方 案 和 不 同 的 百 分 比 填 充 定 制。 對BarChart 類 增 加 了 幾 個 方 法 便 可 給 應 用 程 序 開 發 者 提 供 極 大 的 靈 活 性。
  
  當 屬 性 的 類 型 是 內 建 的 類 型, 而 且 你 并 不 介 意 鍵 入 字 符 串 來 提 取 顏 色, 這 樣 工 作 得 很 好。 但 是 當 屬 性 的 類 型 為 自 定 義 類 型 時, 例 如BarChart 有direction 屬 性 指 示BarChart 的 增 長 方 向, 合 理 的 值 為 上、 下、

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲qvod图片区电影| 亚洲国产日韩欧美综合久久| 亚洲国产精品视频在线观看| 国产一区二区香蕉| 国内成人精品一区| 欧美在线一级视频| 亚洲欧洲在线看| 日韩精品视频免费专区在线播放| yw.139尤物在线精品视频| 欧美精品成人91久久久久久久| 日韩在线观看视频免费| 久久久人成影片一区二区三区| 中文字幕av一区中文字幕天堂| 奇门遁甲1982国语版免费观看高清| 黑人与娇小精品av专区| 欧美在线精品免播放器视频| 欧美肥臀大乳一区二区免费视频| 2019精品视频| 国产精品永久免费视频| 91欧美精品成人综合在线观看| 日韩精品欧美激情| 色爱av美腿丝袜综合粉嫩av| 96精品久久久久中文字幕| 日韩一区二区久久久| 国产精品精品一区二区三区午夜版| 日韩国产激情在线| 久久久久免费精品国产| 精品无码久久久久久国产| 91精品国产综合久久久久久久久| 久久久久久久影院| 中文字幕九色91在线| 欧美国产日韩一区二区三区| 91热福利电影| 亚洲一区二区三区在线视频| 国产成人极品视频| 国产成人精品久久二区二区| 久久资源免费视频| 久久天天躁狠狠躁老女人| 日韩一中文字幕| 色综合亚洲精品激情狠狠| 国产亚洲精品久久| yellow中文字幕久久| 精品高清一区二区三区| 爽爽爽爽爽爽爽成人免费观看| 超碰91人人草人人干| 亚洲白拍色综合图区| 亚洲老头老太hd| 国产精品视频在线播放| 精品视频在线播放色网色视频| 国产一区二区三区日韩欧美| 羞羞色国产精品| 国产精品爱久久久久久久| 欧美一级片在线播放| 免费不卡欧美自拍视频| 精品国产一区二区三区四区在线观看| 日韩成人在线播放| 亚洲人成电影网站| 欧美猛交免费看| 热re99久久精品国产66热| 中文字幕亚洲精品| 欧美制服第一页| 欧美亚洲在线视频| 欧美亚洲免费电影| 国产精品自拍偷拍视频| 欧美体内谢she精2性欧美| 欧美色欧美亚洲高清在线视频| 伊人男人综合视频网| 欧美自拍视频在线观看| 美女久久久久久久| 精品亚洲男同gayvideo网站| 精品美女国产在线| 日韩精品中文字幕在线| 亚洲精品欧美日韩| 久久天天躁夜夜躁狠狠躁2022| 欧美日韩国产区| 98视频在线噜噜噜国产| 亚洲福利在线看| 日韩视频―中文字幕| 日韩欧美国产免费播放| 一区二区三区视频在线| 国产精品激情av电影在线观看| 亚洲国产欧美一区| 国产成人精品免高潮在线观看| 国产精品欧美激情| 国内伊人久久久久久网站视频| 亚洲精品美女网站| 2019亚洲日韩新视频| 国产女人18毛片水18精品| 国产一区二区丝袜| 久久久久www| 在线观看日韩www视频免费| 国产成人自拍视频在线观看| 国产精品91一区| 91久久久久久久| 欧美极品少妇xxxxⅹ免费视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 热门国产精品亚洲第一区在线| 亚洲欧美中文日韩v在线观看| 久久男人av资源网站| 国产精品久久久久久久久免费| 精品福利免费观看| 大量国产精品视频| 亚洲成人教育av| 成人羞羞国产免费| 欧美又大粗又爽又黄大片视频| 日韩有码片在线观看| 精品日本高清在线播放| 日韩中文字幕在线播放| 国产精品99久久久久久人| 国产精品香蕉在线观看| 亚洲国产婷婷香蕉久久久久久| 欧美另类极品videosbest最新版本| 欧美日韩国产精品专区| 亚洲精品91美女久久久久久久| 久久久综合av| 91视频国产一区| 久久国产精品偷| 欧美激情视频在线免费观看 欧美视频免费一| 欧美一区第一页| 亚洲高清福利视频| 日韩大陆欧美高清视频区| 国产精品精品久久久| 91精品视频一区| 亚洲综合在线小说| 奇米一区二区三区四区久久| 亚洲视频欧洲视频| 久久久人成影片一区二区三区| 色香阁99久久精品久久久| 欧美性资源免费| 欧美黄色片免费观看| 久久久女女女女999久久| 色先锋久久影院av| 欧美亚洲视频在线看网址| 国产精品美女主播在线观看纯欲| 亚洲欧美中文日韩在线v日本| 亚洲娇小xxxx欧美娇小| 国产日韩视频在线观看| 日韩亚洲精品电影| 日韩av色综合| 亚洲一区av在线播放| 国产精品视频久久久| 日韩欧美在线免费| 亚洲成人网在线观看| 亚洲欧美在线一区| 成人久久精品视频| 午夜精品国产精品大乳美女| 日韩精品视频免费在线观看| 日韩av免费在线观看| 久久久久久这里只有精品| 亚洲www在线| 91国语精品自产拍在线观看性色| 久久精品视频导航| 在线观看欧美视频| 成人动漫网站在线观看| 日韩欧美精品网址| 欧美日韩国产专区| 亚洲国产中文字幕久久网| 欧美另类99xxxxx| 久久久久久久国产| 欧美性做爰毛片| 久久综合国产精品台湾中文娱乐网| 国产精品免费福利| 欧美激情免费看| 最新国产精品亚洲|