整理手機(jī)板書內(nèi)容_第1頁
整理手機(jī)板書內(nèi)容_第2頁
整理手機(jī)板書內(nèi)容_第3頁
整理手機(jī)板書內(nèi)容_第4頁
整理手機(jī)板書內(nèi)容_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精品文檔手機(jī)可以編程嗎?手機(jī)硬件,基本可以按計(jì)算機(jī)對(duì)待。作 為計(jì)算機(jī),最基本的部件是 主機(jī)(處理器 CPU+內(nèi)存)。從軟件上看就是 操作系統(tǒng)。結(jié)論:手機(jī)實(shí)際上就是一臺(tái)小的計(jì)算 機(jī),其中配置一定的處理器和一定容量的內(nèi) 存,并工作在某種操作系統(tǒng)下。常見的手機(jī)芯片(CPU):目前英國(guó) ARM架構(gòu)占據(jù)手機(jī)處理器 90%的市場(chǎng)份額。1.1 ntel 的 XScale 處理器2. ARM ( Adva need RISC Mach in es),既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微處理器的通稱,還可以認(rèn)為是一種 技術(shù)的名字。3. OMAP :無線設(shè)備制造商,諸如諾基 亞、索尼愛立信、Palm、

2、惠普公司及索尼等 業(yè)界頂尖的設(shè)備制造商,以及諸如宏碁、 LuckyGoldstar、HTC、Sendo 及其它的主要設(shè)計(jì)制造商均宣布支持 TI的OMAP處理器 平臺(tái)。常見的手機(jī)操作系統(tǒng):操作系統(tǒng)1. Symbia n 操作系統(tǒng):Symbia n系統(tǒng)的手機(jī)目前比較常見的是Nokia、三星、西門子2. Windows Mobile(windows CE)操作系統(tǒng)3. iOS系統(tǒng):iphone系列手的操作。4 Palm系統(tǒng)5. .Android系統(tǒng)新型手機(jī)操作系統(tǒng),支持無 線互聯(lián)網(wǎng)技術(shù)。主流的手機(jī)編程體系:MidpAdriod本課程以MIDP手機(jī)程序設(shè)計(jì)為框架展開。編程工具 WTK2.5,它要求jd

3、k版本為1.5版 以上。用WTK開發(fā)一個(gè)手機(jī)程序的過程:新建一個(gè)項(xiàng)目(new project),完成后結(jié) 果:注意以下三個(gè)信息:演示程序src將java源程序放在演示程序src文件夾中只有將源程序放在這個(gè)位置上,才能被WTK找到并編譯。演示程序res演示將項(xiàng)目所需的資源文件(如圖片)存放在程序 res 文件夾中,只有這個(gè)文件夾中的資源文件才能被 WTK 讀出。演示程序 lib 這個(gè)文件夾中存放外來的庫文件(略) 按以上要求存放文檔后,就可以編譯程序 (Build ),編譯過程中可能產(chǎn)生錯(cuò)誤,那么 必須改正源程序中的錯(cuò)誤,再編譯,直到程 序無錯(cuò)為止。運(yùn)行程序( Run )。 手機(jī)程序結(jié)構(gòu): im

4、port javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DEMO extends MIDlet public void startApp()public void pauseApp()public void destroyApp(boolean b) 以上是一個(gè)最簡(jiǎn)單的手機(jī)程序,它可以表明一個(gè)手機(jī) 程序的基本結(jié)構(gòu):1.手機(jī)程序由若干類( class )構(gòu)成從 java 程序的觀點(diǎn),類應(yīng)如下:class 類名2. 在若干類中,必須且只能有一個(gè)主類。它是程序中 最開始執(zhí)行的類。主要類有兩個(gè)標(biāo)

5、志: public 、必 須擴(kuò)展于 MIDlet 類。import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class DEMO extends MIDletpublic void startApp()public void pauseApp()public void destroyApp(boolean b)3.java 類的寫法:class 類名變量聲明; / 可有可無,可多可少 函數(shù)聲明; / 可有可無,可多可少變量是程序運(yùn)行過程中用于存放數(shù)據(jù)的空間,這些空 間是以變量的形式出現(xiàn),變量需要聲

6、明類型名 變量名int x,y;聲明了 x,y兩個(gè)整型變量,存放整數(shù)。double乙 聲明了一個(gè)浮點(diǎn)型變量z,存放實(shí)數(shù)。 char c;變量c中存放一個(gè)字符String str; str 可以存放一個(gè)字符串。 函數(shù),由一組語句構(gòu)成的程序段。值類型 函數(shù)名 ( 參數(shù)表 )函數(shù)體;如:public void destroyApp (boolean b )X=7;函數(shù)是對(duì)數(shù)據(jù)的加工過程, 它由名稱、參數(shù)表(加 工的原料,也就是被計(jì)算的數(shù)據(jù))、值類型(加工結(jié) 果的類型)以及函數(shù)體(加工過程)??疾槭謾C(jī)程序:public class DEMO extends MIDletpublic void star

7、tApp()public void pauseApp() public void destroyApp(boolean b) 這個(gè)手機(jī)程序是一個(gè)類,名字是DEMO它是擴(kuò)展于 MIDlet 類。類中沒有聲明變量, 聲明了 startApp 、 pauseApp和destroyApp三個(gè)函數(shù)。三個(gè)函數(shù)都沒有函 數(shù)體。可見,作為一個(gè)手機(jī)程序必須是一個(gè) java 類,而 且必須 擴(kuò)展于MIDIet類,聲明startApp、pauseApp和 destroyApp 三個(gè)函數(shù) 。 在手機(jī)程序中,可能會(huì)用到一些其他類,如 MIDIet, 在程序中必須導(dǎo)入( import )這些類。import javax.

8、microedition.midIet.*;import javax.microedition.Icdui.*;MIDIet 類就在 javax.microedition.midIet 包(文件夾)中。 * 表示所有類。類似于C中的#include的作用第三講在手機(jī)程序中的三個(gè)函數(shù)是與手機(jī)上的一些事 件相關(guān)聯(lián)的,當(dāng)手機(jī)程序運(yùn)行過程中發(fā)生了某些事件 時(shí),系統(tǒng)就會(huì)自動(dòng)調(diào)用這些函數(shù)。startApp 函數(shù):當(dāng)手機(jī)程序運(yùn)行時(shí),首先初始化 (構(gòu)造函數(shù), init 函數(shù)),然后自動(dòng)調(diào)用該函數(shù)。所 以它是一個(gè)程序的入口部分,所以一個(gè)程序的功能代 碼將從這個(gè)函數(shù)開始。pauseApp函數(shù):當(dāng)一個(gè)手機(jī)程序運(yùn)行時(shí)

9、,如果有 了電話呼叫、短信息,這時(shí)系統(tǒng)會(huì)暫停本程序,暫停 本程序之前,自動(dòng)調(diào)用該函數(shù)。因此在接聽電話或閱 覽短信之前,程序應(yīng)該做的準(zhǔn)備工作代碼可以寫在該 函數(shù)中。destroyApp 函數(shù):在程序即將結(jié)束時(shí),調(diào)用的函 數(shù)。在這個(gè)函數(shù)中, 可以設(shè)計(jì)一些程序的善后處理代 碼。程序中這三個(gè)函數(shù)是必不可少的,除此之外,程 序還可以設(shè)計(jì)其他的函數(shù)甚至其他類。在手機(jī)上顯示文本框:import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class DEMO extends MIDletDisplay displa

10、y;TextBox tb=new TextBox( “標(biāo)題 ”,“正文”, 200,0);public void startApp()display=Display.getDisplay(this); display.setCurrent(tb);public void pauseApp()public void destroyApp(boolean b)可以顯示在屏幕上的對(duì)象必須是 Dispalyable 類的 子類的對(duì)象。1 聲明并創(chuàng)建TextBox對(duì)象。TextBox tb=new TextBox( 標(biāo)題” “正文”,200, 0);TextBox生時(shí)必須給出四個(gè)參數(shù):標(biāo)題,正文,最大長(zhǎng)

11、 度,輸入限制。2.取得顯示屏幕Display disp=Display.getDisplay(this);3將可顯組件設(shè)置到屏幕。disp.setCurrent(tb);第四講:手機(jī)程序中的菜單(命令項(xiàng))。MIDP中的菜單是由Command實(shí)現(xiàn)。聲明并產(chǎn)生命令項(xiàng)的方法:Command c;C=new Comma nd(文字”命令型態(tài),優(yōu)先級(jí));或者Comma nd c=new Comma nd(文字”命令型態(tài),優(yōu)先 級(jí))以上的語法中,命令型態(tài):-命令類型可以是下列8個(gè)值之一? Command.BAC:K 返回前一屏幕;? Command.CANCEL取消當(dāng)前正在進(jìn)行的工作;? Command

12、.STO:P 中斷當(dāng)前正在運(yùn)行的動(dòng)作。? Command.EXIT退出應(yīng)用程序;? Command.HELP請(qǐng)求在線幫助;? Command.lTEM選擇命令是當(dāng)前屏幕中的某一項(xiàng);? Command.SCREEN應(yīng)用到當(dāng)前屏幕的命令;? Command.OK確定當(dāng)前正在進(jìn)行的動(dòng)作;不同型態(tài)的命令將出現(xiàn)的位置不同。 優(yōu)先級(jí)部分表現(xiàn)為一個(gè)整數(shù), 整數(shù)越小, 優(yōu)先級(jí)越高。 命令項(xiàng)產(chǎn)生后,可以用addCommand函數(shù)將命令項(xiàng)設(shè) 置到 Dispalyable (如 TextBox).命令型態(tài)決定命 令選項(xiàng)出現(xiàn)的位置:命令項(xiàng)出現(xiàn)在屏幕最下行。點(diǎn)中兩個(gè)軟件按鈕,就可 以選中某個(gè)菜單。左邊永遠(yuǎn)只能出現(xiàn)一項(xiàng)菜

13、單。其他 菜單都會(huì)出現(xiàn)在右邊,其他菜單如果有多項(xiàng),則折迭 成一個(gè)me ni多級(jí)菜單。所以,使用頻率最高的菜單應(yīng)該設(shè)計(jì)在左邊。BACK CANCE、STOP和EXIT型態(tài)的菜單可以出現(xiàn)在左邊, 其他四種型態(tài)只能出現(xiàn)在右邊??偨Y(jié),各種菜單項(xiàng)出現(xiàn)的規(guī)律:型態(tài)決定位置,如果把型態(tài)也理解為一種優(yōu)先的話,那么上述八種型態(tài)的優(yōu)先級(jí)別是依次降低的。高四級(jí)可以出現(xiàn)在左邊。除型態(tài)之外,型態(tài)相同的前提下優(yōu)先級(jí)可以決定各菜單出現(xiàn)次 序。Comma nd c=new Comma n文字”,命令型態(tài),優(yōu)先級(jí)) 優(yōu)先級(jí)值越小,越先出現(xiàn)。即:菜單出現(xiàn)的次序是: 先決定于型態(tài); 型態(tài)相同時(shí), 決定于優(yōu)先 級(jí);型態(tài)和優(yōu)先級(jí)都相同

14、,則決定于在程序中添加的次序。菜單響應(yīng):當(dāng)用戶選定了某菜單時(shí),都應(yīng)該產(chǎn)生某一個(gè)動(dòng)作。程序中總 需要將某些代碼的執(zhí)行與某菜單相聯(lián)系,這就是 事件模型 。 midp中的事件模型:事件,是手機(jī)中某狀態(tài)改變。這些事件有些是由系統(tǒng)產(chǎn)生的, 如手機(jī)程序被呼叫中斷。 有些事件是人為產(chǎn)生的, 如按下了某按 鍵。系統(tǒng)事件的響應(yīng),由系統(tǒng)負(fù)責(zé),如 startApp,pauseApp,destroyApp 函數(shù)的調(diào)用就是如此。 但人為產(chǎn) 生的按鍵事件,必須在程序中將事件與動(dòng)作(函數(shù))對(duì)應(yīng)。這種 編程規(guī)律,就是事件模型。import javax.microedition.midlet.*;import javax.mi

15、croedition.lcdui.*;public class MyMIDlet extends MIDlet Display disp;TextBox tb=new TextBox(TextBox 演示程序 , 天氣真好 ,256,1) ;Comma nd comm仁 new Comma n退出 ”,Comma nd.SCREEN,2),comm2=new Comma nd還原 ”,Comma nd.SCREEN,1),comm3=new Command( 清除 ,Command.EXIT,2),comm4=newComma nd選項(xiàng) ”,Comma nd.SCREEN,2);public

16、void startApp()tb.addCommand(comm4);tb.addCommand(comm1);tb.addCommand(comm2);tb.addCommand(comm3);disp=Display.getDisplay(this);disp.setCurrent(tb);public void pauseApp()public void destroyApp(boolean b)事件:手機(jī)上發(fā)生的狀態(tài)改變。 有些事件由系統(tǒng)產(chǎn)生, 如:手機(jī)程序 的運(yùn)行(初始化),中斷,撤消;系統(tǒng)產(chǎn)生的事件的響應(yīng),由系 統(tǒng)規(guī)定。有些事件由操作者產(chǎn)生, 如:操作者按下鍵盤上的某鍵。 這些事

17、 件可以在程序中通過程序處理。 這樣的事件分成兩大類: 高級(jí)事 件與低級(jí)事件。高級(jí)事件:由操作者按下 軟件按鈕 產(chǎn)生的事件。對(duì)于高級(jí)事件的響應(yīng)與硬件無關(guān), 容易移植,針對(duì)某公司某款式 型號(hào)上寫出的高級(jí)事件響應(yīng)程序, 將它移植到另一公司另一款式 或另一個(gè)型號(hào)的機(jī)器上,一定能正確執(zhí)行。菜單事件就是高級(jí)事 件之一。低級(jí)事件:指操作者按下除軟件按鈕之外的其他按鍵所產(chǎn)生的事 件。由于不同公司不同款式不同型號(hào)上, 對(duì)這些按鍵的定義可能 差別,所以針對(duì)某機(jī)型上設(shè)計(jì)的低級(jí)事件響應(yīng)程序,在另一機(jī)型上不保證能正確運(yùn)行。 可見,低級(jí)事件與硬件相關(guān),不保證移植 性。菜單事件的響應(yīng):菜單事件,是由一個(gè)接口去監(jiān)視并處理。

18、Comma ndListe ner程序中,首先必須指定事件的監(jiān)視器,它負(fù)責(zé)監(jiān)視事件是否發(fā)生 當(dāng)事件發(fā)生后,進(jìn)行處理。監(jiān)視器是一個(gè)類(的對(duì)象),任何類都以指定為監(jiān)視器,但 它必須實(shí)現(xiàn)CommandListener接口 .class A implements CommandListener最簡(jiǎn)單的情況下,也可以指定主類(程序中MIDIet的派生類)作監(jiān) 視器。pubIic cIass A extends MIDIet impIements CommandListener Java語言規(guī)定,當(dāng)一個(gè)類實(shí)現(xiàn)(implements )了接口時(shí),在該類 中必須寫出接口中的 所有接口函數(shù)的函數(shù)體。 在接口中只

19、聲明函 數(shù),但沒有函數(shù)體。Comma ndListe ner接口中只定義了一個(gè)抽象函數(shù)(只有聲明,沒 有函數(shù)體):public void commandAction (Command c, Displayalbe d);接口的作用,將菜單項(xiàng)選中的動(dòng)作,與comma ndActio n函數(shù)相關(guān)聯(lián),即當(dāng)選中菜單時(shí),程序一定會(huì)轉(zhuǎn)到這個(gè)函數(shù)。所以,在實(shí)現(xiàn)該接口的類中,就應(yīng)該給出這個(gè)函數(shù)的函數(shù)體。public void commandAction(Command c, Displayalbe d);程序運(yùn)行時(shí), 如果有某個(gè)菜單項(xiàng)被選中, 則程序跳轉(zhuǎn)到這個(gè)函數(shù)處運(yùn)行。import javax.microe

20、dition.midlet.*;import javax.microedition.lcdui.*;public class MyMIDlet extends MIDlet implementsCommandListenerDisplay disp;TextBox tb=new TextBox(TextBox 演示程序,abcdefg,256,1) ;Comma nd com m仁new Comma nd 大寫 ”,Comma nd.SCREEN,2);public void startApp()tb.addCommand(comm1);tb.setCommandListener(this);

21、disp=Display.getDisplay(this);disp.setCurrent(tb);public void pauseApp()public void destroyApp(boolean b)public void commandAction(Command c, Displayable d)tb.setString(tb.getString().toUpperCase();以上程序中用到了三個(gè)函數(shù):文本框類( tb )的函數(shù)getString()得到文本框上顯示的字符串, 結(jié)果為 StringsetString()將字符串設(shè)置到文本框上字符串類的函數(shù):toUpperCase

22、()將字符串中的小寫字母轉(zhuǎn)為大寫字母。當(dāng)程序中的多菜單先后被選中時(shí), 各菜單的選中, 都會(huì)轉(zhuǎn)到同一函數(shù)comma ndActio n中執(zhí)行。public void commandAction(Command c, Displayabled)。在函數(shù)中的參數(shù)c和d,是由系統(tǒng)產(chǎn)生并傳給函數(shù).所以c和d可以 在函數(shù)中作為已知數(shù)據(jù)直接使用。C中保存著倒致程序轉(zhuǎn)到 comma ndActio n函數(shù)的菜單變量的名字。D中保存著這時(shí)的屏幕對(duì) 象。程序中通過判斷c的值可以決定是哪個(gè)菜單被選中。 多菜單操作:import javax.microedition.midlet.*;import javax.mic

23、roedition.lcdui.*;public class MyMIDlet extends MIDlet implementsCommandListenerDisplay disp;TextBox tb=new TextBox(TextBox 演示程序 ,abcdefg,256,1) ;Comma nd com m仁new Comma nd 大寫 ”,Comma nd.SCREEN,1), comm2=new Command( 小寫 ,Command.SCREEN,2), exit=new Comma nd(”退出 ”,Comma nd.BACK,1);public void startA

24、pp()tb.addCommand(comm1);tb.addCommand(comm2); tb.addCommand(exit);tb.setCommandListener(this);disp=Display.getDisplay(this);disp.setCurrent(tb);public void pauseApp()public void destroyApp(boolean b)public void commandAction(Command c, Displayable d)if (c=comm1)tb.setString(tb.getString().toUpperCa

25、se();elseif (c=comm2)tb.setString(tb.getString().toLowerCase();else if (c=exit)notifyDestroyed();其中, notifyDestroyed() 函數(shù)是 MIDlet 類的函數(shù),表示撤消本MIDlet;解釋程序中的函數(shù)調(diào)用方法:notifyDestroyed();disp.setCurrent(tb);有些函數(shù)調(diào)用時(shí)需對(duì)象前綴, 有些不需。其實(shí),在Java程序中任何函數(shù)都是屬于某個(gè)類,不存在不屬于類的游離函數(shù)。程序中, 如果調(diào)用其他對(duì)象的函數(shù),必須指明對(duì)象名,如: disp.setCurrent(tb)

26、;但,調(diào)用本類的函數(shù),可以不加前綴。notifyDestroyed();要加前綴,可以:this. notifyDestroyed();notifyDestroyed() 函數(shù)是 MyMIDlet 類從 MIDlet 類中繼承而來的 函數(shù)。;List選擇的組件,在一組可選項(xiàng)中,選擇一個(gè)或多個(gè)選項(xiàng)。構(gòu)造函數(shù)一:public List(String title,int listType)title 表示標(biāo)題, listType 表示類型。這種方式可以創(chuàng)建一個(gè) 空白的 List 對(duì)象,沒有可選項(xiàng)??梢栽陔S后的代碼中用 List 的 appe nd添加可選項(xiàng)。構(gòu)造函數(shù)二:public List(Str

27、ing title, int listType, String stringElements, Image imageElements) 產(chǎn)生完整的 List 對(duì)象,既有標(biāo)題 ,也有內(nèi)容。 List 有三種形式:Choice.EXCLUSIVE: 單選 ListChoice.IMPLICIT: 隱含菜單,是一種單選 List ,選中時(shí) 會(huì)觸發(fā)事件Choice.MULTPLE 多選 List當(dāng)顯示 List 后,選中某項(xiàng)時(shí),可以用以下函數(shù)得到我們 所選中的項(xiàng)目:public int getSelectedIndex( )得到選中項(xiàng)的序號(hào), 0,1,2, 等。適合于單選時(shí)。-如果是多選List可以

28、用- public int getSelectedFlags(boolean sArray)返回值返回我們選擇的項(xiàng)數(shù), 具體的選項(xiàng)在 sArray 表 達(dá)。示例:public void commandAction(Commandc,Displayable d)boolean b=new boolean3;String msg= 共選擇了+list.getSelectedFlags(b)+項(xiàng) , 它們分別是: ;for (int i=0; ib.length; i+)if (bi) msg=msg+txti+ ;TextBox tb=new TextBox( 您的選擇是:,msg,256,1);

29、disp.setCurrent(tb);Choice.EXCLUSIVE和Choice.MULTIPLE兩種形態(tài)的 List 本身并不觸發(fā)事件,所以在程序中必須再用Comman觸發(fā)事件,在事件處理函數(shù)中,檢測(cè)我們所選的項(xiàng)目。Choice.IMPLICIT 形態(tài)的 List 是單選,但它選中后自身觸發(fā)Commar事件,不需要再設(shè)計(jì)Comman以觸發(fā)事件,一旦選擇,自 動(dòng)調(diào)用。public void commandAction(Command c,Displayable d)但,這時(shí) 在c中傳入一個(gè)常量:List.SELECT_COMMAN由此可以區(qū)別是菜單還是 List 觸發(fā)的事件,如下例:pu

30、blic void commandAction(Command c,Displayable d)if (c=List.SELECT_COMMAND)TextBox tb=new TextBox( 您的選擇是:,txtlist.getSelectedIndex(),256,1);disp.setCurrent(tb);elsenotifyDestroyed();帶圖片的 List;tryimg0=Image.createImage(/TranslatorPlugin.png);img1=Image.createImage(/LoginAssis.png);img2=Image.createIma

31、ge(/ExtYouxi.png);catch(Exception e)list=new List( 請(qǐng)選擇文化程度,Choice.IMPLICIT,txt,img);list.addCommand(exit);多屏切換:import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class ListDemo extends MIDlet implementsCommandListenerDisplay disp;List list;String txt=小學(xué) , 中學(xué) , 大學(xué) ;Image img=

32、null,null,null;Command exit=new Command( 退出,Command.SCREEN,1),retu=new Command( 返回,Command.SCREEN,1);public void startApp()tryimg0=Image.createImage(/TranslatorPlugin.png); img1=Image.createImage(/LoginAssis.png); img2=Image.createImage(/ExtYouxi.png); catch(Exception e)list=new List(請(qǐng)選擇文化程度 ,Choice

33、.IMPLICIT);list.append(txt0,img0);list.append(txt1,img1);list.addCommand(exit); list.setCommandListener(this); disp=Display.getDisplay(this); disp.setCurrent(list);public void pauseApp()public void destroyApp(boolean b)public void commandAction(Command c,Displayable d)if (c=List.SELECT_COMMAND) Text

34、Box tb=new TextBox( 您的選擇是: ,txtlist.getSelectedIndex(),256,1);tb.addCommand(retu); tb.setCommandListener(this);disp.setCurrent(tb);else if (c=exit) notifyDestroyed();else if (c=retu) disp.setCurrent(list);Alert 類也是一個(gè)屏幕對(duì)象類, 可以設(shè)置到屏幕, 它在屏幕上停留設(shè)定 的時(shí)間后,自動(dòng)返回 之前的屏幕,因此它用于顯示一些臨時(shí)顯示 的內(nèi)容,比如提醒用戶、顯示信息。Item 子Form:

35、唯一一個(gè)可以自由設(shè)計(jì)界面的屏幕對(duì)象,它可以添加 類的對(duì)象。import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class ListDemo extends MIDletDisplay disp;Form form=new Form( 表單演示 );public void startApp()TextField tf1=new TextField(姓名,10,TextField.ANY);TextField tf2=new TextField(密碼,10,TextField.PASSWORD);f

36、orm.append(tf1);form.append(tf2); disp=Display.getDisplay(this); disp.setCurrent(form);public void pauseApp()public void destroyApp(boolean b)簡(jiǎn)易計(jì)算器設(shè)計(jì)import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class ListDemo extends MIDlet implementsCommandListenerDisplay disp;Form fo

37、rm=new Form( 簡(jiǎn)易計(jì)算器 );TextField tf1=new TextField( 數(shù)一,10,TextField.DECIMAL),tf2=new TextField(數(shù)二,10,TextField.DECIMAL),tf3=new TextField(結(jié)果,10,TextField.DECIMAL);Command add=new Command(+,Command.SCREEN,1), sub=new Command(-,Command.SCREEN,2), mul=new Command(*,Command.SCREEN,3), div=new Command(/,Co

38、mmand.SCREEN,4), exit=new Command(退出 ,Command.BACK,1);public void startApp()form.append(tf1);form.append(tf2);form.append(tf3); form.addCommand(add);form.addCommand(sub); form.addCommand(mul);form.addCommand(div); form.addCommand(exit);form.setCommandListener(this);disp=Display.getDisplay(this);disp

39、.setCurrent(form);public void pauseApp()public void destroyApp(boolean b)public void commandAction(Command c, Displayable d) if (c=exit)notifyDestroyed();elsetrydouble a=Double.parseDouble(tf1.getString();double b=Double.parseDouble(tf2.getString();double s=0;if (c=add)s=a+b;else if (c=sub)s=a-b;els

40、e if (c=mul)s=a*b;else if (c=div)s=a/b;tf3.setString(+s);catch(Exception e)圖形編程:圖形類。運(yùn)行一個(gè)Canvas類,并將之放到屏幕時(shí),之前的畫面仍殘留 在屏幕上,所以應(yīng)該清屏,但Canvas未提供清屏函數(shù)。只能編程 清除屏幕,具體地是用背景色重畫整個(gè)畫布。import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class CanvasDemo extends MIDlet public void startApp() MyC

41、anvas mc=new MyCanvas();Display.getDisplay(this).setCurrent(mc); public void pauseApp() public void destroyApp(boolean b) class MyCanvas extends Canvas int width, height;MyCanvas()width=getWidth(); height=getHeight();public void paint(Graphics g)g.setColor(0x00FFFFFF);清屏幕g.fillRect(0,0,width,height)

42、; /g.setColor(0x00ff0000);/g.drawArc(50,50,100,100,0,360);g.setColor(0x000000FF);g.setFont(Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD,Font.SIZE_LARGE);g.drawString(ABCD 中國(guó)人,50,80,g.TOP|g.LEFT);手機(jī)上的低級(jí)事件 高級(jí)事件?發(fā)生在手機(jī)程序中的菜單 (命令項(xiàng) Comman)d 選中事件。當(dāng)通過軟按 鍵選中Command,就會(huì)發(fā)生高級(jí)事件。針 對(duì)高級(jí)事件編程時(shí), 必須有一個(gè)類作為監(jiān)視 器,這個(gè)類必須實(shí)現(xiàn)接口 CommandListe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論