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

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

事件監聽器:將JavaBeans接通起來的方法

2019-11-18 11:31:56
字體:
來源:轉載
供稿:網友

  通 過 適 當 配 置,javaBeans 能 夠 去" 監 聽" 其 它 軟 件 對 象。 而 且 正 如 你 將 要 看 到 的 一 樣, 一 個Java1。1 類( 包 括 任 何 一 個JavaBeans) 一 旦 成 為 一 個 事 件 監 聽 者, 就 不 僅 僅 只 能 夠 監 聽 其 父 類, 而 且 能 夠 監 聽 所 有 產 生 事 件 的 類。 事 件 監 聽 者 的 思 想 正 是Java 類( 和 其 它JavaBeans) 如 何 處 理 事 件 的 關 鍵。
  
  我 先 來 介 紹 兩 個 圖 標, 它 們 將 幫 助 我 們 識 別 一 些 關 鍵 問 題。
  
  JavaBeans 是 一 個 重 要 概 念
  Cuppajoe 圖 標 表 示 對 于Java 語 言 來 說 新 的 或 重 要 的 思 想
  
  什 么 是 事 件
  軟 件 事 件 是 一 段 說 明 某 事 已 經 發 生 的 數 據。 用 戶 移 動 鼠 標, 或 從 網 上 傳 來 數 據 報, 或 傳 感 器 監 測 到 某 人 非 正 常 介 入, 所 有 這 些 發 生 的 情 況, 都 可 以 被 看 成 是 事 件 的 實 例, 而 有 關 這 些 情 況 的 信 息 可 以 包 括 在 事 件 之 中。 通 常 情 況 下, 根 據 事 件 處 理 來 開 發 軟 件 系 統 是 較 為 方 便 的: 在 此 情 況 下, 程 序 設 計 變 成 一 種 對" 當 此 發 生 時, 做 彼" 式 的 敘 述 進 行 加 工 處 理 的 過 程。 如 果 鼠 標 已 被 移 動, 則 隨 之 移 動 屏 幕 上 的 光 標; 如 果 網 上 傳 來 數 據 報, 則 讀 之; 如 果 發 現 有 人 侵 入, 則 驅 逐 之。
  
  通 常 而 言, 一 個 事 件 包 括 以 下 信 息: 事 件 源( 產 生 事 件 或 最 初 接 收 到 事 件 的 對 象), 事 件 的 發 生 時 刻, 和 一 些 事 件 接 收 者 可 能 用 到 的 說 明 什 么 情 況 發 生, 如 何 去 做 的 子 類 的 具 體 信 息。 例 如, 在Windows 系 統 中, 就 應 當 有 一 個 關 于 點 擊 鼠 標 的 事 件 子 類。 點 擊 鼠 標 事 件 將 包 括 點 擊 鼠 標 時 的 時 刻; 也 可 能 包 括 當 點 擊 發 生 時, 鼠 標 在 屏 幕 上 的 位 置,SHIFT 鍵 和ALT 鍵 的 狀 態, 是 點 擊 了 鼠 標 左 鍵 還 是 右 鍵 等 等 諸 如 此 類 的 信 息。 處 理 事 件 的 編 碼, 不 可 思 議 地 被 稱 為" 事 件 處 理 者"(event handler)。
  
  那 么, 所 有 這 些 與JavaBeans 有 何 關 系 呢? 事 件 是Beans 相 互 通 訊 的 主 要 方 式。 這 點 我 們 在 下 面 將 會 看 到。 如 果 你 正 確 地 選 擇 了 事 件 和 它 們 的 連 接, 你 就 可 能 在 你 的 應 用 系 統 中 將Beans 相 互 接 通, 讓 每 一 個Beans 按 照 你 的 意 愿 去 響 應 與 其 相 關 的 事 件。 每 一 個Beans 將 各 負 其 責, 對 新 來 的 事 件 進 行 適 當 地 響 應, 并 且 當 新 的 情 況 出 現 的 時 候, 向 相 關 的 鄰 居Beans 發 送 新 的 事 件。 一 旦 你 知 道 如 何 利 用 事 件, 你 就 能 夠 寫 出 通 過 事 件 和 其 他 組 件 進 行 通 訊 的Beans。 更 進 一 步 地 講, 外 部 系 統, 例 如 集 成 開 發 環 境(IDEs) 能 夠 自 動 地 檢 測 你 的Beans 所 用 的 事 件, 并 能 讓 你 以 圖 解 的 方 式 來 互 連Beans。IDEs 同 樣 也 能 向JavaBeans 發 送 事 件 和 從JavaBeans 接 收 事 件, 本 質 上 講, 可 以 從 外 部 來 控 制JavaBeans。
  
  為 了 了 解 事 件 怎 樣 和Beans 一 起 工 作, 你 就 必 須 了 解 他 們 在Java 中 是 如 何 工 作 的。 而 事 件 工 作 的 方 式 各 不 相 同,JDK1。1 則 是 標 準 的。
  
  JDK 1。0 的 事 件 機 制 有 何 問 題?
  在JDK1。0 中, 事 件 主 要 被 用 在 抽 象 視 窗 工 具 包(AWT) 中, 當 在 用 戶 接 口 上 出 現 某 種 情 況 時, 它 將 通 知 相 應 的 類。 程 序 員 應 用 繼 承 機 制, 通 過 創 建 某 個 類 的 能 夠 接 收 相 應 的 事 件 類 型 的 子 類 對 象 和 重 載 父 類 的 事 件 處 理 過 程, 來 進 行 事 件 處 理。
  
  例 如, 在Java1.0 版 中, 能 夠 獲 得 某 個 行 為 事 件(action event) 的 唯 一 途 徑, 就 是 把 它 從 某 個 知 道 如 何 處 理 此 行 為 事 件 的 類 中 繼 承 下 來。
  
  public class MyButton extends java.awt.Button
  {
  //重載action()方法以處理行為事件
  public boolean action(Event evt, Object what)
  {
  //此處,做一些行為事件所做的事
  }
  }
  
  這 意 味 著, 只 有 從java。awt。button 中 繼 承 下 來 的 類 才 能 夠 響 應 點 擊 鼠 標 事 件。 這 種 組 織 結 構 與 用 戶 接 口 捆 綁 在 一 起, 不 夠 靈 活 方 便。 它 不 便 于 構 造 新 的 事 件 類 型。 而 且 即 便 你 能 夠 構 造 新 的 事 件, 你 也 很 難 改 變 那 些 將 被 類 響 應 的 事 件, 因 為 有 關 的 信 息 都 被 僵 硬 地 固 化 在AWT 的" 族 系 樹"( 繼 承 圖) 中。
  
  新 的JDK1。1 擁 有 一 個 更 為 普 適 的 事 件 框 架, 它 能 夠 讓 產 生 事 件 的 類 和 其 它 不 產 生 事 件 的 類 互 相 通 訊。 新 的 模 式 放 棄 了 定 義 客 戶 子 類 必 須 重 載 的 事 件 處 理 函 數( 方 法) 的 工 作 方 式, 轉 而 采 用 定 義 接 口 的 方 式。 如 果 一 個 類 需 要 接 收 某 一 特 定 的 消 息 類 型, 則 這 個 類 可 以 使 用 所 定 義 的 接 口。( 你 可 能 會 明 白, 這 意 味 著 通 過" 授 權"(delegation), 而 不 是 通 過" 繼 承"(inheritance) 來 處 理 事 件)。 我 們 將 還 以JDK1。0 button 例 子 來 說 明JDK1。1 的 模 式。
  
  我 在 此 想 要 做 的 事 是, 構 造 一 個 新 的 類, 使 它 能 夠 在 按 鈕 被 按 下 時, 去 做 某 件 事 情。 在JDK1。0 版 中, 為 了 處 理 與 按 鈕(Button) 行 為 相 關 的 事 件, 我 必 須 繼 承java。awt。Button, 這 樣, 一 旦 某 個 按 鈕 被 按 下 時, 該 按 鈕 將 會 讓 我 的 新 類 知 道。
  
  //...在程序的另一個地方,我們定義了"監聽"按鈕行為的對象
  ActionListener myActionListener = new ActionListener();
  //...
  
  //按鈕行為事件
  public class MyButton extends java.awt.Button
  {
  //重載action()以通知我的新類
  public boolean action(Event evt, Object object)
  {
  myActionListener.action(evt, object);
  }
  }
  
  現 在, 每 當MyButton 被 按 下 時,myActionListener 對 象 都 會 收 到 一 個 事 件。myActionListener 并 非 一 定 要 是java。awt。Component 的 一 個 子 類, 但 它 的 確 要 包 括 一 個action() 方 法。 我 們 把 這 個 新 類 稱 為ActionListener, 是 因 為 這 個 新 類 一 直 將 要" 監 聽" 它 所 依 附 的Botton 的 行 為 事 件。 在 此, 仍 有 一 些 問 題 存 在:
  
  當 按 下 此 按 鈕 時, 將 要 通 知 的 對 象 是 固 定 在 程 序 中 的, 這 就 是 說, 我 不 能 在 程 序 運 行 時 刻(runtime)" 重 新 接 通"Button 和myActionListener 的 關 系。
  
  僅 有 一 個 對 象 可 被 通 知 到; 如 果 其 它 幾 個 對 象 都 與 點 擊Button 有 關 系, 這 該 如 何 解 決?
  
  我 們 仍 然 沒 有 解 決 通 過" 繼 承" 來 接 收 按 鈕 行 為 事 件 的 難 題-- 這 就 是 說,myActionListener 仍 必 須 從 某 個" 了 解" 按 鈕 及 其 行 為 事 件 的 類 中 繼 承 下 來。
  對 第 一 個 問 題, 有 一 個 可 供 選 擇 的 辦 法 是 在MyBotton 類 中 增 加setListener(ActionListener newListener) 及myNewClass getListener() 兩 個 方 法, 和 一 種 能 更 換 被 通 知 的 對 象 的 途 徑。 然 而 非 常 不 幸, 我 們 仍 然 不 能 僅 僅 局 限 于 為 每 一 個 按 鈕 關 連 一 個 對 象, 因 而 下 面 你 將 看 到, 我 們 將 生 成 一 系 列 的 監 聽 器(listeners)。
  
  //按鈕行為事件( button action event)
  public class MyButton extends java.awt.Button
  {
  PRivate Vector listeningObjects = new Vector();
  
  //重載action()以通知我的新類
  public boolean action(Event evt, Object object)
  {
  for (int i = 0; i
  
  好 了 , 現 可 以 看 到 , 任 何 一 個ActionListener 的 實 例 都 可 以 通 過 調 用addActionListener(this)" 監 聽" 任 何 一 個Mybutton 實 例 上 的 事 件 , 并 且 通 過 調 用removeActionListener(this) 結 束" 監 聽"。 這 一 進 步 的 確 不 錯 , 但 是 有 關" 繼 承" 的 問 題 仍 然 困 繞 著 我 們: 只 有Button 和ActionListener 對 象( 及 其 派 生 類 對 象) 才 能 接 收 到Button 行 為 事 件。 對 此 ,Java 有 著 新 的 解 決 路 線: 接 口。
  
  接 口 和 事 件 監 聽 器
  在Java 術 語 表(http://Java。sun。com/docs/glossary。Html) 中 將 接 口 定 義 如 下:
  
  接 口(interface): 在Java 中 , 是 一 組 特 定 的 方 法 , 這 些 方 法 可 以 在 多 個 不 同 的 類 中 實 現 , 而 不 必 考 慮 這 些 類 在 類 系 結 構 中 的 等 級 關 系。
  
  為 什 么 它 會 如 此 有 用?
  接 口 定 度 了 一 “角 色”,通 過 實 現 這 一 接 口 中 的 一 系 列 操 作 , 每 一 個 類 都 可 以 扮 演 接 口 的 角 色 。
  
  接 口 的 定 義 和 類 的 定 義 看 起 十 分 相 似:
  
  // 仍 在JDK1.0 內
  public interface ActionListener
  {
  void action(Event evt, Object obj

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产乱码久久久久久婷婷| 操91在线视频| 欧美成人中文字幕在线| 亚洲视频网站在线观看| 国产精品久久9| 久久在线视频在线| 精品福利在线视频| 国产欧美亚洲视频| 亚洲乱亚洲乱妇无码| 91精品久久久久久| 国产美女久久精品| 九九精品在线播放| 97视频在线观看免费高清完整版在线观看| 欧美日本中文字幕| 日韩大陆欧美高清视频区| 成人h视频在线| 欧美日韩中文在线观看| 在线观看亚洲区| 国产丝袜一区二区三区免费视频| 国产精品高潮呻吟久久av无限| 亚洲精品国产综合久久| 亚洲精品小视频| 在线播放日韩专区| 91中文字幕在线| 日韩精品在线观| 中文字幕日韩欧美精品在线观看| 日韩中文字幕免费看| 亚洲综合中文字幕在线观看| 亚洲人精选亚洲人成在线| 久久精品国产清自在天天线| 亚洲欧美成人一区二区在线电影| 亚洲石原莉奈一区二区在线观看| 伊人伊成久久人综合网小说| 国产精品美女视频网站| 韩曰欧美视频免费观看| 欧美另类交人妖| 精品亚洲国产成av人片传媒| 精品国产拍在线观看| 久久香蕉频线观| 日韩美女在线播放| 久久久久亚洲精品国产| 精品亚洲一区二区三区在线观看| 亚洲国产精品久久91精品| 国产狼人综合免费视频| 日韩欧美亚洲范冰冰与中字| 色妞一区二区三区| 91精品国产综合久久香蕉| 国产精品自在线| 午夜精品一区二区三区在线视频| 国产一区二区三区日韩欧美| 一区二区三区天堂av| 国产精品18久久久久久首页狼| 久久久在线视频| 久久综合国产精品台湾中文娱乐网| 亚洲国产精品资源| 欧美猛男性生活免费| 久久久久久91香蕉国产| 色老头一区二区三区在线观看| 欧美老女人bb| 国产精品女主播视频| 国产日韩在线播放| 欧美性做爰毛片| 国产欧美日韩亚洲精品| 亚洲成**性毛茸茸| 久久资源免费视频| 中文字幕精品一区久久久久| 国产亚洲欧洲黄色| 这里只有精品视频| 欧美极品少妇xxxxⅹ喷水| 激情成人在线视频| 久久久久久久一区二区| 性色av香蕉一区二区| 日韩av免费看| 亚洲美女中文字幕| 一二美女精品欧洲| 久久精品久久久久电影| 中文日韩在线视频| 欧美麻豆久久久久久中文| 国产成+人+综合+亚洲欧美丁香花| 中文国产成人精品久久一| 欧美人与性动交a欧美精品| 日韩欧美中文字幕在线播放| 欧美日韩人人澡狠狠躁视频| 国内精品伊人久久| 午夜精品99久久免费| 亚洲国产小视频在线观看| 亚洲成人网在线观看| 久久久久久久久国产精品| 欧美电影免费观看网站| 亚洲女人初尝黑人巨大| 日韩av在线免费观看一区| 精品综合久久久久久97| 精品久久久香蕉免费精品视频| 欧美韩国理论所午夜片917电影| 免费不卡在线观看av| 国产精品国产自产拍高清av水多| 日韩av一区二区在线| 97在线视频精品| 国产一区二区三区丝袜| 亚洲tv在线观看| 性欧美长视频免费观看不卡| 国产日产欧美a一级在线| 一区二区三区天堂av| 亚洲精品一区二区在线| 日韩大胆人体377p| 亚洲国产99精品国自产| 亚洲精品欧美日韩专区| 91在线观看免费观看| 国产精品免费一区二区三区都可以| 蜜月aⅴ免费一区二区三区| 日韩视频在线一区| 国产做受高潮69| 国产成人精品一区二区三区| 日韩免费观看高清| 亚洲第一福利视频| 欧洲亚洲免费在线| 中文字幕精品www乱入免费视频| 国自产精品手机在线观看视频| 亚洲高清免费观看高清完整版| 国产精品免费久久久久影院| 欧美日韩一区二区免费在线观看| 欧美精品18videosex性欧美| 色综合影院在线| 欧美小视频在线观看| 日韩欧美成人免费视频| 欧美国产日韩一区二区| 黄色成人在线播放| 韩国19禁主播vip福利视频| 欧美日韩激情网| 欧美日韩免费网站| 尤物精品国产第一福利三区| 国外视频精品毛片| 青青草原成人在线视频| 国产一区二区av| 国产亚洲精品久久久久久| 亚洲精品久久久久中文字幕欢迎你| 日韩视频永久免费观看| 欧美夫妻性视频| 欧美在线视频在线播放完整版免费观看| 亚洲在线免费看| 日韩精品视频中文在线观看| 国产亚洲精品va在线观看| 久久激情视频久久| 亚洲色图欧美制服丝袜另类第一页| 搡老女人一区二区三区视频tv| 色婷婷综合久久久久| 欧美另类精品xxxx孕妇| 精品亚洲一区二区三区| 亚洲欧美国产日韩中文字幕| 91禁外国网站| 91免费高清视频| 国产精品揄拍500视频| 一本色道久久综合亚洲精品小说| 久久久精品日本| 欧美wwwwww| 91超碰caoporn97人人| 亚洲国产中文字幕在线观看| 最近2019年好看中文字幕视频| 中文欧美日本在线资源| 国产精品久久久久久久久久免费| 中文字幕综合一区| 久久久久久久久久久网站| 久久天天躁狠狠躁夜夜躁2014| 色综合男人天堂|