面向?qū)ο蟪绦蛟O(shè)計(jì):第12章課件_第1頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì):第12章課件_第2頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì):第12章課件_第3頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì):第12章課件_第4頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì):第12章課件_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第12章 JavaBean編程技術(shù)第1頁(yè),共24頁(yè)。12.1 JavaBean概述 JavaBean API為應(yīng)用Java程序設(shè)計(jì)語(yǔ)言編寫(xiě)軟件組件提供了可靠保證,這些組件可以通過(guò)可視化的應(yīng)用程序構(gòu)造工具方便地嵌入到Applet應(yīng)用程序、Application應(yīng)用程序或復(fù)合組件中,JavaBean組件又被簡(jiǎn)稱為Bean。JavaBean是JDK1.1的核心概念,任何支持Java1.1的瀏覽器或工具都支持JavaBean。第2頁(yè),共24頁(yè)。JavaBean應(yīng)該具有的特征自檢特征屬性特征定制特征事件特征持久性特征功能分解特征第3頁(yè),共24頁(yè)。自檢特征JavaBean可以通過(guò)下面兩種途徑進(jìn)行自我檢測(cè):

2、在對(duì)JavaBean功能進(jìn)行命名時(shí),嚴(yán)格地遵循命名規(guī)范,又稱為設(shè)計(jì)模式,通過(guò)名稱就可以知道它的基本功能。利用可視化的方式將每個(gè)JavaBean 屬性、方法和事件的相關(guān)信息展示給用戶,可以直接地觀察到它們的狀態(tài)。第4頁(yè),共24頁(yè)。屬性特征屬性是JavaBean外觀及行為特征的描述用戶可以在設(shè)計(jì)階段對(duì)它進(jìn)行定制。對(duì)于每個(gè)JavaBean,可以通過(guò)軟件構(gòu)造工具進(jìn)行檢測(cè)并以可視化的方式提供給用戶。第5頁(yè),共24頁(yè)。定制特征 在設(shè)計(jì)階段可以利用屬性編輯器或JavaBean定制器對(duì)其進(jìn)行重新定制。第6頁(yè),共24頁(yè)。事件特征JavaBean利用事件實(shí)現(xiàn)與其他JavaBean的溝通。希望接收事件的JavaBe

3、an要對(duì)它所關(guān)注的事件引發(fā)者進(jìn)行注冊(cè)。 軟件構(gòu)造工具能夠檢查每個(gè)JavaBean,以便判定它能夠引發(fā)哪些事件或能夠處理哪些事件。第7頁(yè),共24頁(yè)。持久性特征持久性使得JavaBean的狀態(tài)可以被永久性地保存起來(lái)修改了某個(gè)JavaBean的屬性之后,一定要將其永久性地保存,以便日后使用時(shí)JavaBean將處于最新版本的狀態(tài)。第8頁(yè),共24頁(yè)。功能分解特征JavaBean的方法與Java的成員方法一樣,不僅可以由其他的JavaBean調(diào)用,也可以由本地環(huán)境調(diào)用。在默認(rèn)情況下,JavaBean的成員方法都是public方法。每個(gè)JavaBean都應(yīng)該有獨(dú)特的功能,這樣才符合組件技術(shù)的設(shè)計(jì)宗旨。第9頁(yè)

4、,共24頁(yè)。12.2 JavaBean結(jié)構(gòu) JavaBean 類(lèi)似于Java程序,是一個(gè)非常簡(jiǎn)單且嚴(yán)格遵守某種規(guī)則的類(lèi),每個(gè)JavaBean都有不同的功能。JavaBean 屬性、事件和方法是構(gòu)成JavaBean的三大內(nèi)部構(gòu)件。例:設(shè)置組件大小及背景顏色的JavaBean 第10頁(yè),共24頁(yè)。一個(gè)最簡(jiǎn)單的JavaBeanimport java.awt.*;import java.io.Serializable;public class SimpleBean extends Canvas implements Serializable public SimpleBean() setSize(60

5、,40); setBackground(Color.red); 第11頁(yè),共24頁(yè)。1.JavaBean屬性描述了組件的靜態(tài)特征,包括外觀形狀、顏色等通過(guò)專用的方法對(duì)這些屬性進(jìn)行訪問(wèn)按其作用分為4個(gè)類(lèi)別:Simple(簡(jiǎn)單) Index(索引)Bound(關(guān)聯(lián))Constrained(約束)。第12頁(yè),共24頁(yè)。Simple(簡(jiǎn)單)屬性每個(gè)Simple型屬性對(duì)應(yīng)一個(gè)成員變量及一對(duì)用于獲取或設(shè)置(get/set)的public成員方法,基本格式為:public get()public void set()第13頁(yè),共24頁(yè)。例:包含一個(gè)Simple型屬性Color的JavaBean組件impor

6、t java.awt.*;import java.io.Serializable;public class SimpleBean extends Canvas implements Serializable private Color color = Color.green; /Simple型屬性 public Color getColor() /獲取colorreturn color; 第14頁(yè),共24頁(yè)。public void setColor(Color newColor) /設(shè)置color color = newColor; repaint(); public void paint(G

7、raphics g) /設(shè)置顏色并繪制一個(gè)用color顏色填充的矩形g.setColor(color); g.fillRect(20, 5, 20, 30); public SimpleBean() /設(shè)置組件的大小及背景顏色 setSize(60,40); setBackground(Color.red); 第15頁(yè),共24頁(yè)。Index(索引)屬性由多個(gè)屬性構(gòu)成的成員變量數(shù)組定義時(shí)需要有一對(duì)方括號(hào),訪問(wèn)其中的每個(gè)屬性時(shí)需要給出下標(biāo)索引。獲取或設(shè)置這類(lèi)屬性有兩種基本方式獲取或設(shè)置整個(gè)數(shù)組的內(nèi)容;獲取或設(shè)置某個(gè)特定元素的內(nèi)容.第16頁(yè),共24頁(yè)。定義Index屬性的基本格式(1)獲取或設(shè)置整個(gè)

8、數(shù)組的get/set定義格式:Public get()Public void set( value)(2)獲取或設(shè)置數(shù)組中某個(gè)特定元素的get/set定義格式:public get(int index)public void set(int index, value)第17頁(yè),共24頁(yè)。 Bound(關(guān)聯(lián))屬性表示組件之間的關(guān)聯(lián)特性。當(dāng)JavaBean組件的屬性發(fā)生改變,要將這種變化通知給對(duì)此感興趣的監(jiān)聽(tīng)器。一個(gè)包含Bound屬性的JavaBean組件需要維護(hù)一個(gè)屬性變化監(jiān)聽(tīng)器列表。將一個(gè)希望得到這個(gè)通告的組件或應(yīng)用程序添加到監(jiān)聽(tīng)器列表的過(guò)程被稱為注冊(cè)。第18頁(yè),共24頁(yè)。執(zhí)行過(guò)程當(dāng)JavaB

9、ean組件的屬性值發(fā)生了變化時(shí)將激活一個(gè)PropertyChange事件隨即系統(tǒng)自動(dòng)地創(chuàng)建一個(gè)PropertyChangeEvent類(lèi)對(duì)象。封裝了屬性名、屬性的舊值,屬性的新值。將事件的發(fā)生通告給監(jiān)聽(tīng)器列表中的每個(gè)監(jiān)聽(tīng)者各個(gè)監(jiān)聽(tīng)者將自動(dòng)地調(diào)用PropertyChange()成員方法做出響應(yīng)第19頁(yè),共24頁(yè)。 Constrained(約束)對(duì)JavaBean組件屬性的改變加以限制。當(dāng)試圖更改組件的屬性時(shí),JavaBean產(chǎn)生一個(gè)PropertyChange事件,描述了請(qǐng)求更改屬性的內(nèi)容,隨后將其通告給所有注冊(cè)的對(duì)象,如果某個(gè)對(duì)象表示反對(duì),就不能實(shí)現(xiàn)對(duì)該屬性的更改操作。第20頁(yè),共24頁(yè)。2Ja

10、vaBean 方法 JavaBean組件的屬性描述了組件的靜態(tài)特征JavaBean組件的方法表述組件的動(dòng)態(tài)行為在這些方法中,有用來(lái)實(shí)現(xiàn)獲取屬性值和設(shè)置屬性值的;有用來(lái)響應(yīng)事件的;還有一些供組件內(nèi)部調(diào)用的。供外部調(diào)用的方法應(yīng)該具有public訪問(wèn)屬性,它是組件之間或組件與應(yīng)用程序之間相互交流信息的接口。這些方法可以由其他的組件或應(yīng)用程序直接地調(diào)用,也可以由事件激活。第21頁(yè),共24頁(yè)。3JavaBean事件事件處理是JavaBean組件體系結(jié)構(gòu)的核心當(dāng)事件發(fā)生時(shí),將產(chǎn)生一個(gè)事件對(duì)象,并將這個(gè)對(duì)象作為參數(shù)傳遞給事件監(jiān)聽(tīng)器,事件監(jiān)聽(tīng)器再將它發(fā)送給事件處理器進(jìn)行處理。第22頁(yè),共24頁(yè)。事件源是指產(chǎn)生事件的JavaBean組件事件監(jiān)聽(tīng)器是一個(gè)實(shí)現(xiàn)了相應(yīng)的事件監(jiān)聽(tīng)接口且被注冊(cè)到接收事件的JavaBean組件的監(jiān)聽(tīng)器類(lèi)對(duì)象事件處理器是監(jiān)聽(tīng)器中用來(lái)處理具體事件的代碼塊,在Java程序中用監(jiān)聽(tīng)器對(duì)象的成員方法實(shí)現(xiàn)。第23頁(yè),共24頁(yè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論