XXXX-XXXX-1-手持移動設(shè)備應(yīng)用開發(fā)-習(xí)題參考答案_第1頁
XXXX-XXXX-1-手持移動設(shè)備應(yīng)用開發(fā)-習(xí)題參考答案_第2頁
XXXX-XXXX-1-手持移動設(shè)備應(yīng)用開發(fā)-習(xí)題參考答案_第3頁
XXXX-XXXX-1-手持移動設(shè)備應(yīng)用開發(fā)-習(xí)題參考答案_第4頁
XXXX-XXXX-1-手持移動設(shè)備應(yīng)用開發(fā)-習(xí)題參考答案_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

《手持設(shè)備移動應(yīng)用開發(fā)》習(xí)題第1章J2ME簡介1.什么是手持移動設(shè)備?答:本課程所謂的手持移動設(shè)備是指能隨身攜帶的小型智能電子設(shè)備,通常硬件系統(tǒng)應(yīng)包含處理機、內(nèi)存和輸入輸出設(shè)備,而軟件系統(tǒng)應(yīng)包含嵌入式操作系統(tǒng)、可安裝或卸載的嵌入式應(yīng)用軟件。目前主要的手持移動設(shè)備有智能手機、PDA等消費類小型電子設(shè)備,也可以包括各類便捷式嵌入式電子設(shè)備。2.以智能手機為例的手持移動設(shè)備,目前主要有哪些智能手機手持設(shè)備操作系統(tǒng),各自支持何種開發(fā)平臺?(提示:通過網(wǎng)絡(luò)搜索查找)答:微軟公司操作系統(tǒng):WindowsMobile開發(fā)平臺:C#.netNokia公司操作系統(tǒng):Symbian開發(fā)平臺:SymbianC++Google公司操作系統(tǒng):Android開發(fā)平臺:JavaApple公司操作系統(tǒng):IOS開發(fā)平臺:Objective-CResearchInMotion公司操作系統(tǒng):BlackBerry開發(fā)平臺:Java3.簡述Java三個版本的區(qū)別聯(lián)系,以及本課程采用J2ME作為開發(fā)平臺的原因。答:區(qū)別:Java的三個版本分別針對不同的領(lǐng)域。三個版本其基本語法完全相同,只是根據(jù)針對的對象設(shè)備不同,API庫有些差異。聯(lián)系:J2SE包含了Java基本的核心的元素,是J2EE和J2ME的基礎(chǔ)。J2EE是Java的高級版本,在J2SE基礎(chǔ)上增加了新的類庫,引入了新的技術(shù),主要用于服務(wù)器端的程序;J2ME在J2SE基礎(chǔ)上刪減了部分內(nèi)容,還引入了專門的API類庫。原因:J2ME主要用于移動設(shè)備等小型電子設(shè)備的軟件開發(fā),本課程針對手持移動設(shè)備開發(fā)。J2ME有專門的API類庫。J2ME是手持移動設(shè)備開發(fā)目前的主流開發(fā)平臺,通用性強。4.手持設(shè)備移動開發(fā)中與J2ME技術(shù)中Configuration、Profile對應(yīng)的技術(shù)名稱是什么?答:Configuration:CLDC(ConnectedLimitedDeviceConfiguration,連接受限設(shè)備配置)Profile:MIDP(MobileInformationDeviceProfile,移動信息設(shè)備配置簡表)5.什么是MIDlet?答:在J2ME技術(shù)平臺上按照MIDP規(guī)范建立的應(yīng)用程序。MIDlet是應(yīng)用程序管理最基本的單元。J2ME應(yīng)用程序必須繼承MIDlet,然后重寫三個事件函數(shù)。MIDlet中包含有啟動、停止、銷毀三個函數(shù)和一個構(gòu)造函數(shù),MIDlet首先調(diào)用不帶參數(shù)的構(gòu)造函數(shù)然后應(yīng)用程序管理器根據(jù)當(dāng)前的MIDlet的狀態(tài),決定調(diào)用啟動、停止或銷毀中的某一個?!窘滩牧?xí)題】p.11一、選擇題:2、3、4、5二、思考題:3第2章J2ME開發(fā)環(huán)境1.什么是手機模擬器?答:一種能在PC機上仿真手機軟硬件環(huán)境及界面,使得手機軟件的編程、調(diào)試、運行、測試等開發(fā)過程可以在PC機的模擬環(huán)境中實現(xiàn)的軟件系統(tǒng)。2.簡述WirelessToolKit的功能。答:SunJ2MEWirelessToolKit(縮寫為WTK)是Sun公司提供的無線開發(fā)工具包,是一個包含手機實用工具、類庫、文檔、實例以及手機模擬器等的開發(fā)套件。WirelessToolKit的功能是提供了四種模擬器,利用軟件來代替模擬電子設(shè)備。這樣可以在程序開發(fā)成功后不用修改或者僅做簡單的修改后就可以將應(yīng)用程序直接下載到手機上運行該應(yīng)用程序,簡化了開發(fā)過程,提高了開發(fā)效率。3.簡述WTK中四種模擬器名稱及功能。答:四種模擬器分別是:Defaultcolorphone用于具有彩色顯示屏幕的手機模擬器Defaultgrayphone用于具有單色灰度屏幕的手機模擬器Mediacontrolskin用于具有音頻和視頻控制功能的手機模擬器Qwertydevice用于具有標準打字鍵盤的手機模擬器4.請說明構(gòu)建基于eclipse構(gòu)架J2ME編程環(huán)境軟件安裝步驟。答:(1)JDK的安裝;(2)WTK的安裝;(3)Eclipse的安裝;(4)加載EclispeME到Eclipse中;(5)加載WTK到Eclipse中;(6)安裝Eclipse簡體中文語言包。5.請說明MIDlet程序結(jié)構(gòu)及主要方法功能。答:(1)MIDlet項目程序框架結(jié)構(gòu)必須包括有一個MIDlet主類,該類中默認包含構(gòu)造方法及destoryApp()、pauseApp()、StartApp()等3個事件處理方法。(2)構(gòu)造方法用于初始化MIDlet;destoryApp()用于終止MIDlet;pauseApp()用于暫停MIDlet;startApp()用于啟動MIDlet。當(dāng)設(shè)備產(chǎn)生相應(yīng)事件時,程序會自動調(diào)用相應(yīng)處理方法。(3)J2ME應(yīng)用程序必須繼承MIDlet,然后重寫三個事件方法。相關(guān)的一組MIDlet可組合在一起,稱為MIDletSuite。一個或多個MIDlet可打包成一個單獨的Jar文件,形成一個MIDletSuite。每個MidletSuite中包含繼承自MIDlet的類和其他輔助的類,還包含其他的資源?!窘滩牧?xí)題】p.29~30一、選擇題:3、4、5二、思考題:1、3第3章 CLDC和MIDPAPI簡介1.簡述CLDC特點。答:(1)CLDC:ConnectedLimitedDeviceConfiguration(即有限連接設(shè)備配置),只定義了支持最基本的功能和虛擬機規(guī)范的KVM的核心類庫。(2)CLDC運行在存儲器大小、處理能力和顯示能力都受限制的移動信息設(shè)備上。主要針對小型設(shè)備,如手機、PDA等(3)在CLDC中Java標準版的一些功能不被支持。2.簡述MIDP功能。答:MIDP(MobileInformationDeviceProfile,即移動信息設(shè)備簡表),針對移動電話等,提供了用戶界面、網(wǎng)絡(luò)連接、局部數(shù)據(jù)存儲等增強的功能。【教材習(xí)題】p.42一、選擇題:4二、思考題:2第4章J2ME的用戶界面編程1.簡述高層用戶界面及底層用戶界面的特點?答:用戶界面設(shè)計分成兩大類:高層用戶界面和低層用戶界面。(1)高層用戶界面(抽象描述)高層用戶界面是通過高層API類庫實現(xiàn),這類API使用抽象的方法描述用戶界面,界面的具體細節(jié)依靠不同廠商提供的MIDP實現(xiàn),因此在界面實現(xiàn)細節(jié)上可以不一致,優(yōu)點是能夠在不同設(shè)備之間達到高度的可移植性,使用戶界面可以適應(yīng)不同的硬件設(shè)備。MIDP中所有高級API類都是Screen的子類。(2)底層用戶界面(運行感知)底層用戶界面是通過底層API類庫實現(xiàn),這類API在運行時可以感知移動信息設(shè)備中如顯示屏、輸入設(shè)備等硬件配置,依據(jù)硬件配置情況來實現(xiàn)用戶界面,可以更精確控制硬件和更好地發(fā)揮硬件性能,缺點是可移植性差,不同的硬件配置需要不同的程序與之對應(yīng)。2.簡述Display類、DisplayAble類、Screen類功能。答:(1)Display類是系統(tǒng)顯示設(shè)備管理類,提供取得設(shè)備屬性和顯示方法,可以認為是MIDP顯示用戶界面的系統(tǒng)級邏輯屏幕;(2)Displayable類代表應(yīng)用程序各自的邏輯屏幕,系統(tǒng)在同一時間內(nèi)只能顯示一個Displayable邏輯屏幕,用戶只能和這個Displayable類交互;(3)Screen類是繼承自Displayable類的屏幕顯示類,這類對象可以直接在系統(tǒng)屏幕中獲得顯示,且獨占整個屏幕,彼此不能同時分享屏幕顯示??蛇x列表(List類)、提示信息(Alert類)、文本框(TextBox類)、表單(Form)直接繼承自Screen類。3.簡述Display類與Displayable類的區(qū)別聯(lián)系。答:(1)Display類是系統(tǒng)級的邏輯屏幕,Displayable類是應(yīng)用程序級邏輯屏幕,兩者層次不同;(2)一個設(shè)備只有一個系統(tǒng)級邏輯屏幕,可以有多個不同的應(yīng)用程序級邏輯屏幕;(3)Display類負責(zé)管理不同應(yīng)用程序邏輯屏幕,可以決定哪個應(yīng)用程序邏輯屏幕在前臺的系統(tǒng)級屏幕上顯示,并且只有一個應(yīng)用程序邏輯屏幕能在前臺顯示,其余應(yīng)用程序邏輯屏幕可以保存在后臺等待在適當(dāng)時刻顯示;(4)可以形象地認為,Display類屏幕是實際可以看到的顯示設(shè)備,而不同的應(yīng)用程序有各自的屏幕布局,在需要時將各自屏幕布局顯示到這個設(shè)備屏幕上。4.簡述Command類主要功能。答:在MIDP中,Command類代表屏幕菜單命令項,當(dāng)用戶按下一個按鈕時,MIDlet可以響應(yīng)用戶的動作。在Sun的J2MEWTK模擬器中,命令按鈕被稱為softbutton(軟鍵),專門用來提供屏幕菜單命令項,但并不負責(zé)執(zhí)行命令,執(zhí)行菜單命令須依賴于對應(yīng)的命令事件處理方法。5.結(jié)合Command類使用過程說明事件處理過程中事件發(fā)生者、事件監(jiān)聽者及事件處理者各是哪個對象或方法?答:事件發(fā)出者:菜單命令對象Command發(fā)出事件事件監(jiān)聽者:菜單命令監(jiān)聽接口CommandListener事件處理者:菜單命令處理方法commandAction()6.試說明setCommandListener()方法主要作用。答:在事件處理過程中,為了讓監(jiān)聽者與它所監(jiān)聽的對象掛鉤,需要通過所謂監(jiān)聽注冊的方式將兩者聯(lián)系起來,setCommandListener()方法可以監(jiān)聽Command對象發(fā)出的事件,這個方法隸屬于Dsipayable類,List、Alert、TextBox、Form等Displayable類型的對象均可調(diào)用該方法,建立與監(jiān)聽事件的聯(lián)系,指定監(jiān)聽什么類型的事件。7.TextBox類與TextField類在使用和功能上有何異同?答:TextBox是Display的子類,TextField是Form的子類。TextBox是一個DisplayAble類,所以它的對象可以直接由Display顯示,而且TextBox會占滿整個屏幕。而TextField是Item類的子類,所以TextField需要加到Form表單中才能顯示,而且不獨占一個屏幕。8.什么是Alert類?答:(1)Alert類用于在屏幕上顯示信息并可以等待一定的處理時間的邏輯屏幕,可以等待無限長時間的稱為模態(tài)和反之稱為非模態(tài)。(2)Alert類是Displayable類的派生類,屬于邏輯屏幕類,可以通過取得系統(tǒng)屏幕Display對象獲得顯示屏,并且獨占屏幕,不能與其他Displayable對象同時出現(xiàn)在一個系統(tǒng)屏幕上。9.什么是List類?答:(1)List類是可以提供具有并列關(guān)系的多項內(nèi)容供用戶選擇的邏輯屏幕。(2)List類是Displayable類的派生類,屬于邏輯屏幕類,可以通過取得系統(tǒng)屏幕Display對象獲得顯示屏,并且獨占屏幕,不能與其他Displayable對象同時出現(xiàn)在一個系統(tǒng)屏幕上。10.請簡述Form類與item類型組件在編程中的關(guān)系。答:(1)Form類是直接從Displayable類繼承來的,因此具有屏幕特性,這就意味著會獨占整個屏幕;(2)引入Form類的好處是雖然Form自己是獨占整個屏幕,但它可以作為容器,包含Item類型的組件,以便進行屏幕布局。Form類中可以包括文本域、進度條、選擇組等的Item類型的組件;(3)可以在同一個Form中提供多個Item類組件,但Item類組件不能包含于其他Item類組件,并且另一個Form中的Item類組件也不能同時顯示在該Form中,如果必須在多個Form中顯示同一個Item類組件,那就必須在下一個Form顯示它之前,先將該Item類組件從當(dāng)前Form中刪除,然后才能讓該組件顯示在新的Form中。11.什么是Gauge類?答:Gauge是一種可以圖形化地表示數(shù)值范圍大小的進度條,可以通過直觀的圖形來顯示或修改一個變量的大小值,最小值是0,最大值由程序員設(shè)置??梢苑譃榻换ズ头墙换煞N類型。12.簡述ItemStateListener接口功能。答:(1)ItemStateListener接口可以接收Form中Item類型組件狀態(tài)改變產(chǎn)生的事件,因此可以用這個接口來校驗用戶的輸入動作。(2)當(dāng)窗體中某個部件的狀態(tài)發(fā)生了改變,窗體的ItemStateListener的itemStateChanged方法就將被調(diào)用。系統(tǒng)將發(fā)生改變的部件的值傳遞給itemStateChanged方法,在itemStateChanged方法中就可以對部件發(fā)生的變化進行響應(yīng)。13.簡述DateField類的功能。答:(1)DateField類可以在屏幕上顯示日期和時間(2)DateField類是從Item派生出來的,可以放置在窗體中。14.簡述Timer類和TimerTask類功能。答:(1)Timer類對象的主要功能是作為定時器,而由Timer類對象定時執(zhí)行的任務(wù)由TimerTask類對象定義。(2)使用Timer對象的schedule方法可以調(diào)度TimerTask任務(wù)。【教材習(xí)題】p.85一、選擇題:6【程序設(shè)計】1.掌握教材p.51TickerEample類程序。2.掌握教材p.54Commander類程序。3.掌握教材p.59~60TwoAlerts類程序。4.掌握教材p.59~60Gauge1類程序。5.掌握教材p.74程序片斷功能。6.掌握教材p.79~81星空模擬程序。第5章J2ME數(shù)據(jù)庫編程1.什么是RMS?答:(1)在J2ME中定義了一個簡單的基于記錄的數(shù)據(jù)記錄管理系統(tǒng)(RecordManagementSystem,RMS)。(2)RMS不同于在PC機或者是服務(wù)器上運行的數(shù)據(jù)庫管理系統(tǒng),RMS僅提供最基本的數(shù)據(jù)管理功能。(3)記錄存儲機制是由RecordStore類實現(xiàn)。2.什么是記錄?答:(1)在RecordStore中存儲的每一條數(shù)據(jù)稱為記錄(record)。(2)在RMS中每一條記錄的數(shù)據(jù)都存放在一個byte數(shù)組中,每一條記錄由惟一的recordId來標識。(3)在RMS中,可以在一個打開的RecordStore中添加、刪除、檢索和修改記錄。3.RMS如何監(jiān)聽記錄變化?答:RMS使用記錄監(jiān)聽接口RecordListener來監(jiān)視記錄的變化。當(dāng)一個RecordStore中的記錄發(fā)生變化時,RecordListener就會被觸發(fā)執(zhí)行相應(yīng)的事件處理方法。使用下面的事件處理函數(shù)來響應(yīng)相應(yīng)的事件:voidrecordAdded()voidrecordChanged()voidrecordDeleted()6.記錄存儲系統(tǒng)高級操作中4個記錄接口對象是什么?各有什么作用?答:4種高級接口分別是:記錄枚舉接口(RecordEnemeration)、記錄過濾接口(RecordFilter)、記錄比較接口(RecordComparator)、記錄監(jiān)聽接口(RecordListener)。記錄枚舉接口:可以從記錄存儲系統(tǒng)中取得符合條件的多個記錄,并在這些記錄中前后瀏覽,以便對某條記錄操作;記錄過濾接口:可以用來過濾出符合條件的數(shù)據(jù)記錄;記錄比較接口:對數(shù)據(jù)記錄排序進行比較;記錄監(jiān)聽接口:用于監(jiān)聽記錄數(shù)據(jù)增加、刪除和改變事件的發(fā)生7.請說明為何在增加或修改記錄時需要借助DataOutputStream、ByteArrayOutputStream對象,而在獲取記錄時需要借助DataInputStream、ByteArrayInputStream對象。答:(1)在J2ME的記錄存儲系統(tǒng)中數(shù)據(jù)只能以字節(jié)數(shù)組類型(byte[])保存,但在實際應(yīng)用中記錄類型有多種,如字符型、字符串型、整型、浮點型、邏輯型等。以增加記錄為例,方法是publicintaddRecord(byte[]data,intoffset,intnumBytes),從該方法的第1個參數(shù)可以看出添加的記錄類型必須是byte[],這就要求在使用添加記錄方法addRecord()前首先將其他數(shù)據(jù)類型轉(zhuǎn)換為byte[]型數(shù)據(jù),然后才能使用這個方法。這時需要DataOutputStream、ByteArrayOutputStream兩個類的對象配合完成這個工作。轉(zhuǎn)換過程的代碼片斷如下:DataOutputStream、ByteArrayOutputStream這兩個類配合可以完成將數(shù)據(jù)轉(zhuǎn)換為字節(jié)型數(shù)據(jù)的工作,方法如下://首先創(chuàng)建一個ByteArrayOutputStream對象,這個對象可以將得到的數(shù)據(jù)轉(zhuǎn)換化字節(jié)數(shù)組型數(shù)據(jù)輸出ByteArrayOutputStreambs=newByteArrayOutputStream();//將ByteArrayOutputStream對象作為參數(shù),創(chuàng)建與這個對象關(guān)聯(lián)的DataOutputStream對象,DataOutputStream對象提供了將各種基本JAVA數(shù)據(jù)類型轉(zhuǎn)換為數(shù)據(jù)輸出流的方法DataOutputStreamds=newDataOutputStream(bs);//調(diào)用DataOutputStream對象的方法writeInt()將int型數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)輸出流,以便傳遞給ByteArrayOutputStream對象;ds.writeInt();ds.close();//將ByteArrayOutputStream對象中的字節(jié)數(shù)組數(shù)據(jù)取出存入字節(jié)數(shù)組b中byte[]b=bs.toByteArray();(2)同樣在獲取記錄時,直接從記錄存儲系統(tǒng)中得到的數(shù)據(jù)是字節(jié)數(shù)組類型,需要根據(jù)實際應(yīng)用需要轉(zhuǎn)換成相應(yīng)的其他數(shù)據(jù)類型,這個轉(zhuǎn)換過程需要DataInputStream、ByteArrayInputStream這兩個類的對象配合完成這個工作。轉(zhuǎn)換過程的代碼片斷如下://從記錄存儲系統(tǒng)中取得字節(jié)數(shù)組型數(shù)據(jù)存入b中byteb[]=rs.getRecord(id);//創(chuàng)建與b關(guān)聯(lián)的ByteArrayInputStream型對象baisByteArrayInputStreambais=newByteArrayInputStream(b);//建立與bais關(guān)聯(lián)的DataInputStream對象disDataInputStreamdis=newDataInputStream(bais);//調(diào)用DataInputStream對象的readUTF()將得到的數(shù)據(jù)轉(zhuǎn)換成UTF格式字符串;dis.readUTF();//dis.readInt();將得到的數(shù)據(jù)轉(zhuǎn)換成int型數(shù)據(jù)dis.close();【教材習(xí)題】p.119~120一、選擇題:1、2、3、4、6二、思考題:6【程序設(shè)計】1.掌握教材p.87RecordStoreTest類程序。2.掌握教材p.90RecordAdd類程序。3.掌握教材p.91RecordDel類程序。4.掌握教材p.92~94TestRecord類程序。5.掌握教材p.95~97RecordListenerExample類程序。第6章J2ME網(wǎng)絡(luò)編程1.javax.microedition.io包在網(wǎng)絡(luò)編程中有什么作用?答:(1)javax.microedition.io包的目的是實現(xiàn)通用的網(wǎng)絡(luò)通信和本地I/O。(2)javax.microedition.io里包含了一個類、9個接口和一個異常2.簡述Connection接口功能。答:Connection接口提供了網(wǎng)絡(luò)連接的功能,這是一個通用接口類型,只定義了close方法,沒有定義open方法,因為打開接口使用Connector.open()方法。3.舉例說明如何編程實現(xiàn)打開連接讀取數(shù)據(jù)。答:實現(xiàn)打開連接讀取數(shù)據(jù)的程序片斷如下: Stringurl=”;”//定義需要打開的URL地址 //創(chuàng)建并打開連接對象,強制轉(zhuǎn)換為相應(yīng)的連接對象類型ContentConnectionconnection=(ContentConnection)Connector.open(url)//創(chuàng)建并打開相應(yīng)連接對象的輸入數(shù)據(jù)流InputStream_istm=connection.openInputStream();//取得連接對象中數(shù)據(jù)流的長度intlen=(int)connection.getLength();if(len!=-1) //如果輸入數(shù)據(jù)流長度不為空{(diào)byte[]data=newbyte[len];//按輸入數(shù)據(jù)流長度創(chuàng)建字節(jié)數(shù)組istm.read(data); //從輸入數(shù)據(jù)流中讀取數(shù)據(jù)到字節(jié)數(shù)組中}istm.close(); //關(guān)閉輸入數(shù)據(jù)流connection.close();//關(guān)閉連接對象5.Connection支持哪些常見的子接口?答:InputConnection接口、OutputConnection接口、StreamConnection接口、ContentConnection接口、StreamConnectionNotified接口、DatarramConnection接口等。6.為什么在網(wǎng)絡(luò)連接編程中要采用多線程技術(shù)?答:網(wǎng)絡(luò)連接是有可能堵塞的操作,為了高效運行程序,有必要引入多線程設(shè)計。J2ME仍然采用繼承Thread類實現(xiàn)線程類,或?qū)崿F(xiàn)Runnable接口來實現(xiàn)線程操作,調(diào)用Thread中的start()方法啟動線程操作的方法run()?!境绦蛟O(shè)計】1.掌握教材p.123~124GetURLContent類程序。第9章J2ME的低級用戶界面設(shè)計1.可以在一個MIDlet中同時使用高級用戶界面API和低級用戶界面API嗎?答:可以在一個MIDlet交互使用高級用戶界面API和低級用戶界面API,但是不能同時使用兩種類型的API。2.請從繼承關(guān)系說明為什么Canvas類本質(zhì)上是一種屏幕類?Canvas類本身又是各種底層用戶界面類的什么類?(提示:參考WTKDocumentation)答:(1)從繼承關(guān)系來看,Canvas類繼承于Displayable類,因此本質(zhì)上也是一個屏幕類。(2)Canvas類是底層界面編程基類,是一個抽象類,編程時必須繼承該類并實現(xiàn)其paint()方法。2.在實際編程中通常需要重寫Canvas類什么方法?應(yīng)用程序是否可以直接調(diào)用這個方法?說明能或不能直接調(diào)用的理由。答:在實際編程中通常需要重寫Canvas類的paint()方法;paint方法只能被系統(tǒng)調(diào)用,應(yīng)用程序不能直接調(diào)用該方法,用于更新界面,而且每次調(diào)用paint()方法都需要傳遞畫圖的畫筆Graphics,如果用戶想要調(diào)用paint()方法,只能通過調(diào)用repaint()方法間接調(diào)用Paint()方法。3.什么是按鍵事件?什么是指針事件?答:(1)按鍵事件是由鍵盤引發(fā)的事件,在底層用戶界面開發(fā)中,我們需要自己來編程處理這類事件。在Canvas類中存在三種處理按鍵事件的方法,當(dāng)相關(guān)的鍵盤按下時,調(diào)用相對應(yīng)的方法。這3種按鍵事件處理方法是:protectedvoidkeyPressed(intkeyCode):處理按鍵按下protectedvoidkeyReleased(intkeyCode):處理按鍵釋放protectedvoidkeyRepeated(intkeyCode):處理按鍵重復(fù)按下以上方法的參數(shù)是鍵碼。鍵盤的每個按鍵都有一個與之對應(yīng)的鍵碼,如:KEY_NUM0,表示數(shù)字鍵0。(2)在使用了指針設(shè)備或者觸摸屏的移動設(shè)備上產(chǎn)生的事件叫做指針事件。相應(yīng)的事件處理方法:protectedvoidpointerDragged(intx,inty)protectedvoidpointerPressed(intx,inty)protectedvoidpointerReleased(intx,inty)4.什么是游戲動作按鍵?用什么方法取得游戲按鍵功能?答:(1)在游戲中,對鍵盤有一些特殊的要求,需要用鍵盤來表示朝哪個方向移動,或者用鍵盤來指示開火等,所以MIDP專門為游戲設(shè)計了游戲動作按鍵,一個鍵碼對應(yīng)一個游戲動作。MIDP專門為游戲設(shè)計的動作按鍵:UP、DOWN、RIGHT、LEFT、FIRE、GAME_A、GAME_B、GAME_C、GAME_D等。(2)從鍵盤事件中得到的keyCode按鍵代碼,可以使用getGameAction()方法轉(zhuǎn)變?yōu)橛螒騽幼靼存I,如:UP、DOWN、LEFT、RIGHT、FIRE、GAME_A、GAME_B、GAME_C、GAME_D,這樣可以判斷用戶輸入按鍵功能,進而在程序中實現(xiàn)該功能。5.Graphics對象主要作用是什么?Graphics對象中繪制圖形的常用方法有哪些?答:Graphics對象提供在Canvas上繪圖的能力,繪圖可以直接顯示在屏幕上,也可以保存在內(nèi)存中取決于Graphics對象來源:①如果是通過paint()方法參數(shù)傳入的Graphics對象,那么繪圖就直接顯示在屏幕上,直接顯示在屏幕上的圖像無法保存;②如果用Image對象通過getGraphics()獲得Graphics對象,那么繪制的圖像就繪到內(nèi)存中,繪制到內(nèi)存中的圖像可以保存。Graphics對象可用于繪制直線、矩形、園、橢圓等幾何圖形,而且中間還包括矩形、圓繪制圖形的填充。還可以繪制文本并設(shè)置顏色,字體、線條粗細等。Graphics對象中繪制圖形的常用方法有:直線:voiddrawLine(intx1,inty1,intx2,inty2);矩形:voiddrawRect(intx,inty,intwidth,intheight);圓角矩形:voiddrawRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight);繪制填充矩形:publicvoidfillRect(intx,inty,intwidth,intheight);繪制填充圓角矩形:publicvoidfillRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight);繪制弧線:voiddrawArc(intx,inty,intwidth,intheight,intstart,intangle);繪制填充弧線:voidfillArc(intx,inty,intwidth,intheight,intstart,intangle);6.Graphics對象繪制文本的方法是什么?說明其參數(shù)含義。答:調(diào)用Graphics對象的如下方法在屏幕上繪制文本:publicvoiddrawString(Stringstr,intx,inty,intanchor)其中參數(shù)含義:Stringstr:需顯示的字符串intx,inty:文字顯示坐標intanchor:文字顯示的水平或垂直方向?qū)R方式7.Image對象的主要功能是什么?從內(nèi)存的角度來看,Image對象代表著什么樣的內(nèi)存區(qū)域?答:(1)可以形象地認為Image對象代表“畫布”(Canvas)上的圖像區(qū)域。(2)從內(nèi)存的角度來看,Image對象代表著一塊與圖像數(shù)據(jù)及方法對應(yīng)的內(nèi)存區(qū)域。【程序設(shè)計】1.掌握教材p.182~183MyCavas類和CanvasHelloMIDlet類程序。2.掌握教材p.184~185CanvasHelloMIDlet2類程序。3.掌握教材p.188~191HappyPush.java程序。4.掌握教材p.196~198ScreenSaver程序。5.掌握教材p.205~210ImageMove程序。第10章J2ME游戲程序設(shè)計1.在移動電話上開發(fā)游戲的主要有哪些限制?答:(1)屏幕尺寸及分辨率的限制;(2)存儲空間的限制;(3)網(wǎng)絡(luò)速度的限制。2.J2ME游戲程序設(shè)計有何特點?答:(1)J2ME游戲程序主程序基本結(jié)構(gòu)與其他MIDlet程序結(jié)構(gòu)相同;(2)游戲MIDlet中可使用Canvas對象繪制圖形,對按鍵的響應(yīng)功能更加豐富。3.MIDP中提供了Canvas的擴展類是什么?有何功能?答:GameCanvas是MIDP中提供的Canvas的擴展類。主要功能是包含游戲邏輯和圖形繪制,實現(xiàn)游戲中編程所需的所有功能,GameCanvas會在計算機的內(nèi)存中中開辟空間,同時有一個Graphics對象,Graphics對象就像畫筆,畫面的變化就通過Graphics對象寫入內(nèi)存,除了畫面外,GameCanvas類還提供了鍵盤事件處理,以得到鍵盤的當(dāng)前狀態(tài)。4.在MIDP2.0GameAPI中圖層由什么類實現(xiàn)?答:為了便于操控圖像,可以使圖像中不同的內(nèi)容位于不同的層面上,這就是圖層的概念,如讓人物和背景位于不同的圖層上。對每一圖層可以分別管理、操控。為此,MIDP提供了圖層功能,圖層由類Layer實現(xiàn),而多個圖層的管理又由LayerManger類負責(zé)。不同的圖層疊加在一起形成了一個完整的圖像。圖層中有兩個特殊圖層:Sprite和TiledLayer,Sprite存放游戲角色,TiledLayer存放游戲背景5.LayerManger類的主要功能是什么?答:由于受屏幕大小限制,圖像可能無法完全顯示出來,LayerManger類提供了觀察窗口ViewWindow,通過移動觀察窗口實現(xiàn)圖像不同部分的顯示。6.在GameCanvas中檢測Sprite是否與其他對象發(fā)生碰撞,定義哪兩種檢測模式?答:在GameCanvas中可以通過collidesWith()方法的不同參數(shù)的重載形式檢測Sprite與Image、Sprite與Sprite、Sprite與TiledLayer之間是否相遇(即碰撞檢測)。collidesWith()方法中參數(shù)pixelLevel表示檢測模式,在MIDP2.0中定義了兩種模式:像素模式和邊界模式。像素模式用于兩個不透明的像素重疊的碰撞檢測,而邊界模式用于邊界相接時表示相遇的情況。7.在MIDP2.0GameAPI中TiledLayer在分網(wǎng)格時,靜態(tài)索引值和動態(tài)索引值分別從什么值開始?答:TiledLayer可以將一個大圖像分割成網(wǎng)格狀,形成很多小的圖像,按照需要將一些小圖像組合起來,形成一個完整的圖像,TiledLayer在分網(wǎng)格的時候,這些分割成的小圖像都有一個索引值,索引時有動態(tài)和靜態(tài)之分,靜態(tài)索引值從1開始計數(shù),動態(tài)索引值從-1開始計數(shù),動態(tài)索引值和靜態(tài)索引值之間存在關(guān)聯(lián)。8.什么是游戲精靈(Sprite)?答:(1)Sprite是Layer類的子類,負責(zé)主要角色圖層,這個圖層由一個個圖像組合起來,每一個圖像稱為一幀,每一幀圖像按照一定時間間隔顯示出來形成動畫;(2)創(chuàng)建幀的方法如下:Sprite(Imageimage,intframWeidth,intframeHeight)(3)幀的順序也就是幀的索引值從0開始,Sprite提供了切換順序的方法:voidsetFrame(int

sequenceIndex)

voidnextFrame()

voidprevFrame()【程序設(shè)計】1.掌握教材p.216~217KeyEvent類程序。2.掌握教材p.217~218程序。第11章 J2ME的無線消息處理1.WirelessMessagingAPI規(guī)范最新JSR版本是什么?答:J2ME用于開發(fā)基于無線消息服務(wù)的應(yīng)用程序規(guī)范主要有WirelessMessagingAPI1.1(WMA,JSR120)及目前最新版本為WirelessMessagingAPI2.0(WMA,JSR205)。2.WMA支持哪幾種無線消息數(shù)據(jù)服務(wù)?各有什么特點?答:WMA支持文本消息、多媒體消息、小區(qū)廣播等三種無線消息數(shù)據(jù)服務(wù)。其中:文本消息:即我們熟知的手機短信;多媒體消息:即我們熟知的手機彩信,可以傳遞文本、音頻、視頻、圖片等內(nèi)容,實質(zhì)是以二進制形式傳遞數(shù)據(jù)消息;小區(qū)廣播:消息由基站廣播,移動終端(如手機)可以接收,這種消息傳遞是單向的數(shù)據(jù)傳遞服務(wù)。3.Message接口的哪兩個子類分別代表了文本類型和二進制類型的消息?答:Message接口定義了不同類型短消息的基礎(chǔ)部分,它的兩個子類TextMessage和BinaryMessage分別代表了文本類型和二進制類型的消息。4.掌握WMA的主要組件中類名稱、方法及功能。答:WMA的主要組件包括:Message、TextMessage、BinaryMessage、MessageConnection和MessageListener。Message接口定義了不同類型短消息的基礎(chǔ)部分,它的兩個子類TextMessage和BinaryMessage分別代表了文本類型和二進制類型的消息。調(diào)用BinaryMessage的setPayloadData()和TextMessage的setPayloadText()方法可以把有效負載數(shù)據(jù)添加到數(shù)據(jù)容器中,然后進行發(fā)送。MessageConnection接口是擴展了GCF中定義的Connection接口,MessageConnection接口提供了newMessage(),send()和receive()方法來創(chuàng)建、發(fā)送和接受消息對象。MessageListener實現(xiàn)了監(jiān)聽器設(shè)計模式用于異步接受消息,當(dāng)?shù)却⒌絹淼臅r候系統(tǒng)不用堵塞。每次有消息到來的時候,平臺會調(diào)用MessageListener中定義的notifyIncomingMessage()方法。【程序設(shè)計】1.掌握教材p.265~271文本消

溫馨提示

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

評論

0/150

提交評論