版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、j2me程序設(shè)計-實驗指導書實驗1:j2me-eclipse ide的安裝與配置實驗?zāi)康模簩W會基本編程環(huán)境的安裝與配置實驗內(nèi)容: 按照配置安裝步驟,自行練習實驗方式:教師指導為輔,學生自己動手為主實驗步驟:1、下載安裝eclipseme1.5 eclipseme1.5的下載地址: eclipseme1.5目前只有英文版,我已經(jīng)在圖片上把界面中的英文做了相應(yīng)翻譯。將下載下來的eclipseme1.5壓縮包解壓,解壓后會有兩個文件夾features和plugins。將兩個文件夾內(nèi)的內(nèi)容分別拷貝到eclipse安裝目錄下的features和plugins目錄下。這時啟動 eclipse。2、配置ec
2、lipseme1.5 在此,我假設(shè)你已經(jīng)安裝了wtk。如果沒有,請到sun公司的網(wǎng)站上下載。eclipse啟動后點擊窗口-首選項(如圖1)。(圖1)彈出(圖2)顯示的首選項對話框。如果eclipseme插件安裝成功,則在對話框左側(cè)的樹中能夠看到j(luò)2me節(jié)點。中選擇j2me進行相關(guān)配置。step 1、設(shè)置wtk根目錄點擊左側(cè)樹中的“j2me”,出現(xiàn)如下圖界面。這里唯一需要配置的是wtk root。在這一項中要填入wtk的安裝根目錄。例如,我的wtk安裝在d:wtk22。其余的使用默認即可。值得一提的是antenna jar這一項。antenna jar不是一個必設(shè)項,但是使用antenna ja
3、r能夠編寫ant文件,輕松打包j2me程序。(有時間我會介紹如何用antenna jar編寫打包j2me程序的ant腳本。)(圖2)step 2、設(shè)備管理點擊“device management”,出現(xiàn)(圖3)配置界面。點擊“browse”,選擇wtk安裝目錄下的bin文件夾。例如我的bin文件夾的路徑為d: wtk22bin。然后再單擊“refresh”。插件會自動搜索出可用的設(shè)備。(圖3)完成上面工作后,可以說你的j2me環(huán)境基本上就搭建好了。你可以在上面新建、編譯、測試、打包你的程序了。怎么樣簡單吧?但是有一個問題,我們沒有設(shè)置混淆器,不能使用“create obfuscated pac
4、kage”。混淆器對減小jar包大小,防止程序被反編譯很有用,因此很有必要在j2me開發(fā)環(huán)境中設(shè)置混淆器。(圖4)step 3、設(shè)置混淆器proguard 設(shè)置前請先下載proguard。目前proguard的最新版本是3.6beta(4.0正在開發(fā)中)。我用的是3.5。你可以在此下載到: eclipseme單擊“obfuscation”,出現(xiàn)下圖界面。在“progurd root directory”填入proguard的安裝目錄。(圖5)好了,這樣你的j2me開發(fā)環(huán)境就搭建好了,你可以開始用eclipse進行j2me開發(fā)了。實驗2:用命令行環(huán)境開發(fā)midlets實驗?zāi)康模簩W會使用wtk工具
5、開發(fā)j2me程序?qū)嶒瀮?nèi)容: 按照實驗步驟,開發(fā)一個基于命令行的j2me程序?qū)嶒灧绞剑航處熤笇檩o,學生自己動手為主實驗步驟:1 什么是j2me wireless toolkitwtk 的全稱是sun j2me wireless toolkit sun的無線開發(fā)工具包。這一工具包的設(shè)計目的是為了幫助開發(fā)人員簡化j2me的開發(fā)過程。使用其中的工具可以開發(fā)與 java technology for the wireless industry (jtwi, jsr 185) 規(guī)范兼容的設(shè)備上運行的j2me 應(yīng)用程序。該工具箱包含了完整的生成工具、實用程序以及設(shè)備仿真器。到本文寫作時為止可以獲取有四個版
6、本,分別是1.0.4, 2.0, 2.1和2.2。每個版本都包括英語,日語,簡體中文,繁體中文4個語種包。1.0.4版只能夠開發(fā)midp1.0 應(yīng)用程序。2.0 版只能夠開發(fā)midp2.0 應(yīng)用程序。2.1版則可以同時開發(fā)midp1.0、 jtwi(cldc 1.0, midp2.0, wma1.1)可改用cldc1.1或加入mmapi1.1),自定義(自己隨機組合configuration, profile以及optional package)三種環(huán)境下的應(yīng)用程序。2.2版中,wtk全面的支持jtwi規(guī)范。具體的說,即midp 2.0, cldc 1.1, wma 2.0, mmapi 1.
7、1, web services (jsr 172), file and pim apis (jsr 75), bluetooth and obex apis (jsr 82), and 3d graphics (jsr 184);同時您也可以使用該版本開發(fā)面向cldc1.0 和midp1.0的應(yīng)用程序。系統(tǒng)要求上,wtk2.2至少需要 50mb可用硬盤,128mb系統(tǒng)ram和800mhz pentium iii cpu。你可以在sun的官方網(wǎng)站免費下載。wtk2.2 下載鏈接:wtk是sun提供的一個開發(fā)工具包。目前各大手機廠商往往把wtk經(jīng)過自身的簡化與改裝,推出適合自身產(chǎn)品,如sonyer
8、icsson,nokia developers suit等,都屬于此種類型;而通過jbuilder, eclipse等ide,j2me開發(fā)包工具可以被綁定在這些集成開發(fā)環(huán)境中,進一步提高開發(fā)效率。2 j2me wtk的內(nèi)容和目錄結(jié)構(gòu)2.1 安裝過程在說明wtk文件結(jié)構(gòu)之前,讓我們首先把它安裝起來。wtk的安裝程序與普通程序一樣簡單,只有一點需要注意,由于wtk自身并沒有附帶java的運行環(huán)境jdk,所以,在wtk安裝之前你需要安裝自己的 jdk(我們這里選用的是jdk1.4.2)。wtk會首先自動檢測當前系統(tǒng)已有的java虛擬機,然后顯示出當前虛擬機所在路徑您在確定無誤后,就可以繼續(xù)了,最后安
9、裝成功后,您將得到一個包括多種實用工具的開發(fā)包。以下是安裝顯示的菜單項。2.2 目錄結(jié)構(gòu)無論哪個版本的wtk都會包括以下幾個目錄:appdb目錄: rms數(shù)據(jù)庫信息apps目錄: wtk自帶的demo程序bin 目錄: j2me開發(fā)工具執(zhí)行文件docs目錄: 各種幫助與說明文件lib目錄:j2me程序庫,jar包與控制文件session目錄:性能監(jiān)控保存信息wtklib目錄: jwtk主程序與模擬器外觀wtk 是用來開發(fā)midp的,為了讓midlet可以順利編譯和執(zhí)行,wtk必須具有cldc和midp的類庫,wtk可以幫助我們省去額外安裝調(diào)試這些類庫的時間。而不同版本的wtk包含的程序庫內(nèi)容是
10、不一樣的,比如說2.0中包含了midpapi.jar, wma.jar, mmapi.jar,而在2.1中則變?yōu)榱薱ldcapi10. jar, cldcapi11.jar, midpapi10.jar, midpapi20.jar, wma.jar以及mmapi.jar;在2.2中,wma.jar又細分為wma11.jar, wma20.jar。如果您在開發(fā)中需要某個特定的jar包而當前的wtk版本又沒有時,您可以簡單把這個jar包拷貝如當前wtk的lib文件夾即可。apps 目錄中包括了許多demo程序,為我們演示了j2me的一些技術(shù)實例,這些往往是很好的學習材料。3 使用j2me wtk
11、創(chuàng)建工程3.1 建立新項目下面讓我們用wtk來創(chuàng)建一個經(jīng)典的hello world程序,看看這水有多深。在 wtk的程序列表中運行ktoolbar,打開wtk主界面。wtk的標題菜單簡單明了的列出了這個工具包的可選功能。單擊新建項目,鍵入新建的項目名和啟動midlet名,這里的項目是一個midlet套件,而midlet類名則是這個套件的入口,midlet文件名 (也是java文件的名字)。產(chǎn)生項目以后,會出現(xiàn)項目的設(shè)置表,您可以選擇當前目標平臺,cldc配置,以及要采用的midp可選包。再不需要某個庫文件時,請不要選中它,以減少最后程序大小。另外,您還可以指定midlet的屬性,這些設(shè)置將成為
12、jad,即j2me程序的描述信息文檔。我們的hello world目前不需要其它的附加設(shè)置,于是采用默認,確定之后,控制臺信息提示建立成功。wtk產(chǎn)生項目后,不同類型的資源有著相對固定的存放位置。java源文件被放在apps目錄下hello worldsrc下,相關(guān)程序資源文件(圖片,音頻)放在hello worldres下,應(yīng)用程序庫文件放在hello worldlib下,這在wtk中是必須注意的,即便是相對路徑,也必須是在該類型目錄下建立。項目創(chuàng)建成功后,我們來創(chuàng)建一個 midlet文件,midlet是j2me項目文件的入口文件,也是必須的。在hello worldsrc目錄下創(chuàng)建hell
13、oworld.java,采用默認包,注意,此時創(chuàng)建的java程序必須是與我們在創(chuàng)建項目時鍵入的midlet類名一致。在新創(chuàng)建的java文件中輸入代碼,下文是一個簡單的form程序。/helloworld.javaimport javax.microedition.lcdui.*;import javax.microedition.midlet.midlet;public class helloworld extends midlet display display; public helloworld() super(); display = display.getdisplay(this);
14、 protected void startapp() form form = new form(hello world!); form.append(welcome to j2me world!); display.setcurrent(form); protected void pauseapp() protected void destroyapp(boolean arg0) 完成后保存java文件,單擊“生成”按鈕,由wtk為您進行編譯,如果有錯誤生成,則會在控制臺中提示。根據(jù)提示信息對 midlet文件進行修改,再重新生成,直到編譯成功。對編譯成功的程序,你可以從“設(shè)備”選項中選擇 d
15、efaultcolorphone,defaultgrayphone或者其它wtk自帶的設(shè)備模擬器,單擊按鈕可以看到彈出一個手機模擬器,顯示出我們的第一個hello world程序,如果執(zhí)行有錯,依然會在控制臺中給出提示信息。運行成功以后,在 helloworld/bin目錄下,將會產(chǎn)生一個程序描述文檔jad,它清楚的描述了當前midlet的名稱與版本,發(fā)行人,指定的jar包名稱與大小,支持cldc與midp版本等信息。在進階開發(fā)中,默認的聯(lián)網(wǎng)字符串,簽名私鑰等信息也可以保存在這個描述文檔中。3.2 開啟舊項目當我們下一次重新啟動wtk的時候,選擇打開項目,wtk會把自身apps目錄下的應(yīng)用項目
16、全部顯示出來,包括我們剛剛建立的hello world,選擇“打開項目”后,就能夠?qū)pps目錄下的midlet項目進行開發(fā)更改了。4 執(zhí)行midlet、打包和混淆4.1 執(zhí)行midlet除了我們剛剛介紹的在ktoolbar中執(zhí)行一個程序,我們還可以在程序組中直接選擇run midp application, 這是就可以在彈出的對話框中選擇其它路徑中的jad程序運行了。當我們直接選擇運行時,需要注意兩個問題:1. jad描述文件與其指定的jar文件在同一個目錄下。2. 運行目錄路徑中不要包含中文。4.2 打包成jarktoolbar的生成功能只能幫我們將源代碼編譯并預先審核,并不會幫我們產(chǎn)生j
17、ar文件,而我們?nèi)绻l(fā)布midp程序,除了jad描述文件,jar 是必須的,這就需要打包。在ktoolbar選中項目 包 產(chǎn)生包,可以把整個程序,包括資源文件打包成jar文件。形成的jar保存在appshelloworldbin目錄下。4.3 包混淆在上面的操作中,我們看到,除了“產(chǎn)生包”,另外還有一個“產(chǎn)生混淆包”選項。所謂混淆,是為了防止別人反編譯后讀取源代碼,將程序(.class文件) 進行混淆,經(jīng)過混淆的java byte code可以增加別人反編譯的時間。這里我們使用開源的proguard,關(guān)于混淆的詳細介紹和混淆工具的下載,見本教程的前面的章節(jié)。把剛剛獲取的proguard解壓,
18、在解壓目錄的lib子目錄中找到proguard.jar文件,將其拷貝到wtk安裝目錄的bin下,再執(zhí)行混淆包。這是我們將會發(fā)現(xiàn)appshelloworldbin下的jar大小變小了,反編譯后的各個名稱也變得毫無意義了。5 wtk中其它值得關(guān)注的功能到這里,我們就如何用wtk創(chuàng)建,執(zhí)行,打包,混淆一個midp項目做了比較詳細的介紹。除了以上所說各點,wtk(2.2版)還提供諸多實用功能。這些都可以在編輯 偏好中找到。例如,當我們需要監(jiān)視程序性能的時候,可以選中“啟用內(nèi)存監(jiān)視器”,在下一次模擬器執(zhí)行的時候,我們就可讀出程序運行時的內(nèi)存消耗均值,消耗峰值以及具體產(chǎn)生對象的個數(shù)和使用情況。除了內(nèi)存監(jiān)視
19、,我們還可以執(zhí)行網(wǎng)絡(luò)監(jiān)視,設(shè)定存儲區(qū)大小和堆棧大小,設(shè)定安全簽名和藍牙操作屬性,以盡可能模擬手機實際運行環(huán)境,這些功能在進階開發(fā)中都是非常實用的。注意:雖然wtk為我們提供了各種工具來模擬手機運行環(huán)境,但在實際開發(fā)中,由于受到手機硬件,網(wǎng)絡(luò)條件等諸多限制,midp的真實性能在不同機器上會出現(xiàn)不同的反應(yīng),與wtk中的表現(xiàn)可能差別更大。從菜單中選擇“工具集”可以看到更多的實用工具,這些都是開發(fā)實用的j2me程序時會頻繁使用到的。 實驗3:用eclipse開發(fā)midlets實驗?zāi)康模簩W會使用eclipse工具開發(fā)j2me程序?qū)嶒瀮?nèi)容: 按照實驗步驟,開發(fā)一個基于ide的j2me程序?qū)嶒灧绞剑航處熤笇?/p>
20、為輔,學生自己動手為主實驗步驟:1.打開 eclipse-文件-新建-其他-j2me midlet suite在j2me midlet suite-新建j2me midlet2.創(chuàng)建helloworld.java復制一下代碼import javax.microedition.lcdui.display;import javax.microedition.lcdui.textbox;import javax.microedition.midlet.midlet;import javax.microedition.midlet.midletstatechangeexception;public c
21、lass helloworld extends midlet /textbox類對應(yīng)文本框,用于控制文本的輸入,并顯示輸入public textbox textbox;public helloworld() super();protected void destroyapp(boolean arg0) throws midletstatechangeexception / 當程序結(jié)束時,系統(tǒng)調(diào)用該方法protected void pauseapp() / 當程序暫停時,系統(tǒng)調(diào)用該方法protected void startapp() throws midletstatechangeexcept
22、ion / 新建一個名為“測試程序”的文本框,文本框內(nèi)默認輸入“hello world”, / 參數(shù)20表示允許輸入的字符個數(shù), 參數(shù)0表示沒有特殊的輸入限制 textbox = new textbox(雨季醉清風測試程序, hello手機軟件編程!夢想起飛的地方!, 20, 0); /調(diào)用自己填寫的myadd接口。 myadd();/自己加入的新接口public void myadd() / 將textbox設(shè)為屏幕當前顯示的對象 display.getdisplay(this).setcurrent(textbox);運行配置控制臺信息運行結(jié)果實驗4:使用ant管理器管理項目實驗?zāi)康模簩W會
23、使用ant管理工具管理j2me項目實驗內(nèi)容: 按照實驗步驟,開發(fā)一個基于ant的j2me工程實驗方式:教師指導為輔,學生自己動手為主實驗步驟:antenna與j2me打包 眾所周知,j2me平臺受限于各廠商對kvm的實現(xiàn)不同。此外,由于不同終端性能的差別,j2me開發(fā)中的 機型適配是相當繁瑣的工作。當然,對于該難題,有很多種解決方案。例如,可以使用j2mepolish,這里主要討論如何使用antenna來解決這個問題。 antenna介紹 antenna是基于ant的j2me開發(fā)工具。可以使用antenna對j2me程序進行 編譯、校驗、打包、混淆等,甚至可以通過antenna所定義的task
24、,運行已經(jīng)打包完成的jar;還可以將打包完成jad和jar部署到ota服務(wù)器上。以上功能,只是對ant的擴展,在我以前的文章使用ant對j2me程序打包也討論。其實,以上所說的功能,直接使用ant也能實現(xiàn),只是antenna對這些task進行了擴展,使得對j2me程序的打包過程更加的傻瓜話罷了。貌似,話說到這里有些自相矛盾了,既然這些功能ant都能實現(xiàn),還介紹antenna干嘛呢?其實,本人最推崇antenna的,不僅是它對j2me打包過程的簡化,而且特別贊賞它對預處理的支持。除此之外,antenna的預處理,結(jié)合了j2mepolish所提供的device.xml數(shù)據(jù)庫,就是說,我們也可以像在
25、j2mepolish中那樣,對源程序進行相關(guān)的處理,以達到多機型時配的要求。 antenna中的預處理 antenna中的預處理原來與j2mepolish等支持預處理的軟件一致,都是在編譯之前,對代碼中定義的預處理腳本進行處理,并生成符合腳本定義規(guī)則的代碼。 在antenna中,通過“wtkpreprocess”task來進行預處理。關(guān)于預處理腳本的定義,請參考antenna自帶doc中的wtkpreprocess.html。此外,本文討論的preprocessor是指新版的preprocessor,即version=2,原來的預處理機制不在本文討論范圍之內(nèi)。 下面舉例說明,如何通過在代碼中定
26、義腳本獲取終端相關(guān)信息,類似于使用j2mepolish的build和preprocess功能一文中的例子,感興趣的朋友可以結(jié)合起來學習。task定義如下:xml 代碼 其中,device為制定的機型型號,而printsymbols用于標示,是否在處理過程,將所有的標記打印出來。出于學習和調(diào)試目的,最好設(shè)置為true 源代碼片斷:java 代碼public class mycanvas /#if nokia-uijavapackage /# extends com.nokia.mid.ui.fullcanvas /#else extends canvas /#endif /#ifdef key.
27、leftsoftkey /#expand public final static int key_soft_left = %key.leftsoftkey%; /#else public final static int key_soft_left = 6; /#endif /#ifdef key.rightsoftkey /#expand public final static int key_soft_right = %key.rightsoftkey%; /#else public final static int key_soft_right = 7; /#endif int scre
28、enwidth = getwidth(); int screenheight = getheight(); public mycanvas() / #if !(nokia-uijavapackage) /# setfullscreenmode(true); /#endif protected void paint (graphics g) /#ifdef screensize /#expand string screensize = %screensize%; /#else string screensize = 128x128; /#endif g.setcolor(0); g.fillre
29、ct(0, 0, screenwidth, screenheight); g.setcolor(255,255,255); g.drawstring(screensize, screenwidth/2, screenheight/2, 0); 如此一來,就可以通過antenna中的預處理機制,解決多機型之間,鍵值不同,屏幕大小不同,擴展api不同等問題。 注意,device.xml中,有些數(shù)據(jù)并沒有安全定義。例如,各終端的導航鍵值就沒有定義??勺孕刑砑拥絛evice.xml中,然后覆蓋原來的antenna包中的device.xml即可。 目錄結(jié)構(gòu)定義 在打包過程中,對整個工程的目錄設(shè)置如下,具
30、體體現(xiàn)在build.xml中src 源碼目錄res資源目錄build -classes 編譯后的class文件以及從res復制過來的資源文件 -deployedjar和jad文件dist預處理后的java文件ant腳本 按照以上分析,build.xml文件定義如下:xml 代碼 target target target starting compileecho build from all the $dir.src to $dir.classesecho wtkbuild target copy wtkjad wtkpackage target 注意:如果是在eclipse中使用ant 來運行
31、build.xml,請注意ant_home路徑的設(shè)置,且確認ant_homebin目錄下存在antenna包。 軟件版本 apache-ant-1.7.0antenna-bin-0.9.15-beta.jar實驗 5:了解j2me midlet程序結(jié)構(gòu)實驗?zāi)康模毫私鈐2me midlet的程序結(jié)構(gòu)及生命周期實驗內(nèi)容: 按照實驗步驟,開發(fā)一個簡單的midlet實驗方式:教師指導為輔,學生自己動手為主實驗步驟:jam jam(java應(yīng)用管理器)。java應(yīng)用管理器是管理java 應(yīng)用的機制。jam的規(guī)范主要由目標環(huán)境決定,與java規(guī)范無關(guān)。 jam管理應(yīng)用在手機上的生命周期,其功能包括:鑒定概
32、要、解析jad(應(yīng)用描述文件)、應(yīng)用安裝、應(yīng)用更新、應(yīng)用列表、應(yīng)用執(zhí)行。 jam還管理jar文件和jad文件。jar是java應(yīng)用檔案文件,jad是java應(yīng)用描述文件。此外,jam還有管理java虛擬機的功能。 - jar和jad jad(java application descriptor)是java應(yīng)用程序的描述性文件,它所表述的內(nèi)容很多,比如游戲提供商、游戲的版本號、游戲文件的大小等等,當然還有jar的地址。 jar是一個壓縮的文件,在文件中包含了運行游戲的class代碼和資源文件(圖片、聲音文件等等)。 一個完整的midp應(yīng)用程序是由一個jad文件(純文字文件)與jar(zip壓縮
33、檔)所組成。jad與jar之間的關(guān)系 : jar執(zhí)行文件 jad簽名、描述文件 在手機上安裝游戲的時候,手機首先來找到j(luò)ad文件,通過jad文件來解析jar文件。也就是說,任何的手機游戲在真機上只需要這兩個文件,即jad和jar文件。 并非每種裝置在安裝時都要求同時有jad與jar,有些裝置只需要jar即可。不過,有jad和沒有jad的j2me應(yīng)用程序在安全性上是有差異的。 - midp 一個midp應(yīng)用程序稱作midletmidp小應(yīng)用程序,它不能夠單獨地運行,必須運行在特定的環(huán)境之中,或者說運行在一個容器中??梢园堰@個容器看作是個大的應(yīng)用程序,它運行在java虛擬機之上,但不能完成任何特定
34、的任務(wù),因此需要程序開發(fā)者編寫代碼以完成一項工作。 通過這種形式,程序開發(fā)者就從各種運行環(huán)境、各種設(shè)備中解放出來,只需設(shè)計一個midlet,就可以在不同的環(huán)境上運行。比如不同的廠家、不同型號的手機,只要它支持j2me、支持midp,就有這樣一個容器。 midlet中這個容器就是midp實現(xiàn),它以sun公司發(fā)布的cldc規(guī)范和midp規(guī)范為標準,然后針對設(shè)備進行移植,從而提供給所有的midlet都一樣的容器內(nèi)部接口。編寫midp應(yīng)用程序的要求就是必須擴展midlet類 。 當java應(yīng)用管理器將midlet裝載進來,會生成一個midlet對象實例,該對象的生命周期完全由java應(yīng)用管理器控制,在
35、需要改變midlet對象狀態(tài)的時候,由java應(yīng)用管理器會調(diào)用midlet中對應(yīng)的函數(shù)對這個對象進行控制。 midlet 程序開發(fā)的基本方法: 編寫源代碼,生成.java文件。 編譯、預校驗,生成.class文件。在模擬器上運行并測試。 打包生成jar文件。 下載到真機上測試。 midlet 程序開發(fā)的基本方法:j2me手機游戲開發(fā)-midletmidlet生命周期 當jam需要改變midlet狀態(tài)的時候,需要調(diào)用對應(yīng)方法,在方法調(diào)用成功以后,midlet的狀態(tài)最終才會發(fā)生改變。midlet生命周期示意圖: j2me手機游戲開發(fā)-midlet除了jam可以改變midlet的狀態(tài),midlet自
36、身也可以調(diào)用一些方法,改變自身的狀態(tài)。然后再通過notify的系列函數(shù)通知jam,midlet的狀態(tài)需要進行改變。 示意圖:j2me手機游戲開發(fā)-midlet一個midlet對象有三個狀態(tài),分別是:運行狀態(tài)、暫停狀態(tài)、中止狀態(tài)。 jam通過調(diào)用startapp()函數(shù)使midlet進入到開始狀態(tài),也就是說把我們的游戲進入開始狀態(tài);jam通過調(diào)用pauseapp()使midlet進入暫停狀態(tài);通過調(diào)用destroyapp ()使之停止。 midlet不允許直接調(diào)用system.exit()或runtime.exit()來結(jié)束midlet的生命周期,這種方式會引起java的安全異常。當midlet
37、需要自己結(jié)束生命周期的時候,首先調(diào)用destroyapp(),然后通過notifydestroyed()通知jam結(jié)束midlet的運行。 - midlet應(yīng)用程序?qū)嵗?. /*引用包* 2. *悠寶移動應(yīng)用平臺 3. * 4. */ 5. importjavax.microedition.midlet.*; 6. importjavax.microedition.lcdui.*; 7. 8. publicclasstestextendsmidlet 9. 10. privatedisplaydisplay; 11. 12. publicvoidstartapp()/運行線程 13. dis
38、play=display.getdisplay(this); 14. textboxt=newtextbox(悠寶移動應(yīng)用平臺,歡迎您來到悠寶移動應(yīng)用平臺,20,textfield.any); 15. /*textbox(stringtitle,stringtext,intmaxsize,intconstraints) 16. 創(chuàng)建textbox類的新實例,其中,title是文本框的標題,text是文本框的文本, 17. maxsize是允許輸入到文本框中的最大字符數(shù),constraint標識了對字符的約束條件;*/ 18. display.setcurrent(t); 19. 20. 21.
39、 publicvoidpauseapp()/暫停線程 22. 23. 24. publicvoiddestroyapp(booleanunconditional)/線程結(jié)束 25. 26. 例子程序見:midlet.rar實驗6:用戶界面設(shè)計了解實驗?zāi)康模赫莆誮2me 用戶界面的程序設(shè)計實驗內(nèi)容: 按照實驗步驟,開發(fā)一個簡單的用戶界面實驗方式:教師指導為輔,學生自己動手為主實驗步驟:所謂低級圖形用戶界面,指的是那種我們可以自己在上面畫圖的控件,它是和textbox,list等等這些用戶控件剛好相對的概念,因為這些用戶控件的形狀是事先畫好的,無需我們程序員操心,所以稱為高級圖形界面。低級圖形用戶
40、界面什么東西都需要我們自己畫,所以比較復雜,當然也更加靈活,只有想不到,沒有畫不出,所以我們先介紹它。在j2me開發(fā)中,低級圖形用戶界面是由javax.microedition.lcdui.canvas類實現(xiàn)的,我們只要繼承這個類,并實現(xiàn)這個類的paint方法,就可以隨心所欲的進行繪畫了。當然,繪畫之前,我們少不了要了解我們的手機屏幕究竟有多大的畫圖空間,這可以通過調(diào)用canvas類的getwidth和getheight方法實現(xiàn)。下面是一個簡短的程序,向大家演示了怎么獲畫布的大小,同時,也算是一個小小的框架。首先,當然是創(chuàng)建我們自己的畫布,代碼如下:package com.xkland.j2m
41、e;import javax.microedition.lcdui.canvas;import javax.microedition.lcdui.graphics;/* */* author 海邊沫沫*/public class mycanvas extends canvas /* */* creates a new instance of mycanvas */public mycanvas() public void clearbackground(graphics g)int color = g.getcolor();g.setcolor(0xffffff);g.fillrect(0,0,getwidth(),getheight();g.setcolor(color);public void paint(graphics g)/清除背景clearbackground(g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力施工課件教學課件
- 2024年度乙方為甲方提供財務(wù)咨詢服務(wù)合同
- 2024年度供應(yīng)鏈融資合同融資額度與還款方式說明
- 2024醫(yī)療器械公司與研發(fā)團隊合作協(xié)議
- 2024年度技術(shù)服務(wù)與授權(quán)合同
- 2024婚姻擔保協(xié)議合同
- 2024建筑的裝飾合同書范本
- 2024年度版權(quán)出租合同詳細條款及其標的
- 2024年居住房屋買賣合同
- 畫小雞課件教學課件
- 個人簡歷表格(標準文本)(免費下載)
- 實驗七二苯甲醇的制備
- 雷沃十年十大影響力事件評選活動方案
- 肺癌化療臨床路徑
- 全員育人導師制工作手冊
- 各種型鋼理論截面積、理論表面積、理論重量對照表
- 部門服務(wù)滿意度評分表
- 第十章銷售團隊的激勵機制
- 《螞蟻做操》說課稿
- 《危險駕駛罪》PPT課件.ppt
- (完整版)PD、QC有限快充的知識講解
評論
0/150
提交評論