六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

J2ME學習札記 1-11

[摘要]發(fā)信人: javalover (欲下未下風悠揚), 信區(qū): Java 標 題: J2ME學習札記 發(fā)信站: 北大未名站 (2001年10月17日22:22:58 星期三) , 站內信件 (1)-----什么是J2ME? J2ME就是Java 2 Platform,micro Edition的縮寫。...
發(fā)信人: javalover (欲下未下風悠揚), 信區(qū): Java
標 題: J2ME學習札記
發(fā)信站: 北大未名站 (2001年10月17日22:22:58 星期三) , 站內信件

(1)-----什么是J2ME?
J2ME就是Java 2 Platform,micro Edition的縮寫。J2ME是Java 2的一個組成部分,與J2
SE、J2EE并稱。根據(jù)Sun Microsystems,Inc.的定義:J2ME是一種高度優(yōu)化的Java運行環(huán)境,針
對市面上的大量消費類電子設備,例如Papers、cellular phones(蜂窩電話), screen-phones
(可視電話?)、digital set-top boxes(數(shù)字機頂盒)、car navigation systems(汽車導航
系統(tǒng))等等。
J2ME技術在1999年的JavaOne Developer Conference大會上推出。J2ME技術將Java語言
的與平臺無關的特性移植到小型電子設備上,允許移動無線設備之間共享應用程序。

(2)----為了學習J2ME技術,我需要安裝什么樣的軟件?
1)、J2ME Wireless Toolkit
J2ME Wireless Toolkit簡稱J2MEWTK,目前最新的版本就是1.0.3 Beta,J2MEWTK有什么用?打
一個比方,J2MEWTK之于J2ME程序的開發(fā),就相當于JDK之于Java程序的開發(fā)。J2MEWTK是由Sun
公司開發(fā)的,你可以到Sun的網(wǎng)站去下載,這個工具和JDK一樣,是完全免費的。
2)、J2SE SDK 1.3
J2SE SDK 1.3亦即JDK 1.3,JDK有什么用?相信學過Java語言的人都知道,我就不多寫了,在安
裝J2MEWTK之前,你必須確保你的系統(tǒng)已經安裝了一個可用的JDK。建議不要使用JDK 1.2和JDK
1.4,前者版本低,后者不穩(wěn)定。
3)、Tomcat 3.2.3/4.0
Tomcat 3.2/4.0用作服務器軟件,為J2ME手機提供服務。由于手機的資源有限,所以我們需要
盡量將商業(yè)計算集中于服務器端完成,減小客戶端的負擔,所以要開發(fā)J2ME程序,一個服務器軟
件是少不了的。我采用JSP作為服務器端的解決技術,所以我選用的Web服務器是Tomcat。但是
你也可以選用IIS+ASP、Apache+PHP。這個選擇不是唯一的。

(3)----開發(fā)環(huán)境安裝
第一步,安裝JDK 1.3.0或者安裝一個包含JDK 1.3.0的軟件。我安裝了Jbuilder 5.0,它所帶
的JDK是HotSpot 1.3.0_01 Client版。

第二步,安裝J2MEWTK 1.0.3 Beta,在安裝的過程中,需要選擇系統(tǒng)中JDK的安裝目錄,安裝程序
一般可以自動查出來JDK的安裝目錄,我們不用操心。

第三步,安裝Tomcat 3.2.3/4.0,Tomcat 3.2.3是最穩(wěn)定的3.x系列,推薦使用。Tomcat 4.0剛
剛發(fā)布了正式版,也不妨一試。Tomcat 3.2.3/4.0需要經過配置,才能夠運行。

第四步,測試Tomcat是否能夠正常運行JSP程序。這一步很重要。

(4)-----J2ME開發(fā)工具比較
1)、J2MEWTK,這個工具在前文已經提到過,它是最基本的J2ME程序開發(fā)工具,免費,體積小,速
度較快,完全遵守J2ME的各種規(guī)范。具有簡單的IDE界面,易于上手,開發(fā)十分方便快捷,可以和
Forte 3.0捆綁。J2MEWTK適用于初學者和已經達到很高水平的開發(fā)者。竊以為J2MEWTK+JDK+
Editplus/UltraEdit是絕配。評語:重劍無鋒,大巧不工。

2)、VisualAge Micro Edition 1.4。這是IBM的產品,號稱是J2ME開發(fā)領域的TOP 1,但是我用
了半天,也沒有看出好在那里。馬上就刪除了。窗口太復雜,不明所以,開發(fā)起來很難適應,速
度和J2MEWTK一樣,比較龐大,裝了這個東西,你的C盤就要小心了,多了很多亂七八糟的文件,還
注冊了許多COM組件,典型的非綠色軟件。評語:!#$#%$#$%$#%@$@#。

3)、CodeWarrior for Java 6.0。這是Motolola的產品,功能十分強大,集成度很好,開發(fā),調
試,發(fā)布J2ME程序都很方便(還可以做一般的Java Program)。它的IDE和Visual Studio十分相
似,很容易上手。CodeWarrior比較適合中等水平的開發(fā)者的使用。不過CodeWarrior不是免費
軟件,你只能夠免費使用30天。評語:摩托羅拉CodeWarrior,隨時隨地J2ME。

4)、Borland Jbuilder 5.0的Nokia Bobile版。沒用過。評語:缺。

上述分析,僅供參考,僅代表本人意見。

5)------選擇缺省的開發(fā)設備
在開發(fā)J2ME應用程序之前,我們必須選擇這些程序運行的平臺,亦即開發(fā)出來的J2ME程序
運行在那一種手機或者是移動設備上面。在開發(fā)的過程中,我們需要對J2ME應用程序進行測試
,當然了,自己擁有一款支持J2ME的手機是最好的,例如Motolola的i85s,但是這個要求不是每
一個開發(fā)者都能夠滿足(我連手表都沒有,更不用說手機了),因此,大多數(shù)的J2ME開發(fā)環(huán)境都提
供了各種各樣的手機、移動設備模擬器,你可以首先在手機模擬器上測試你的J2ME程序,開發(fā)
完畢以后,再將程序交給專業(yè)的廠商(一般是移動設備提供商),由它們將程序載入手機中進行
真實的程序測試。模擬器和真實的設備之間有一定的差別,但是你的程序只要在模擬器上通過
了,那么問題不會很大。

J2MEWTK提供六種模擬器,分別是:Default Color Phone、Default Gray Phone、Minimum
Phone、Motolola i85s、PalmOS Device、RIM Java Handle。這些模擬器雖然外觀不一樣
,操作也不太一樣,但是J2ME程序在其上運行的結果是不會有什么區(qū)別的,在真實的設備上也是
沒有什么區(qū)別的,這體現(xiàn)了Java的跨平臺特性。你還可以自定義自己的手機模擬器,這在J2ME WTK的
User Guide中有詳細的描述。
在開發(fā)過程中,選擇何種模擬器是十分重要的,原則上來說,你為那一種設備開發(fā)程序
,就要使用那一種設備的模擬器。但是J2ME程序在不同的模擬器上的運行效果基本上是一致
,所以你也可以采用你自己喜歡的模擬器。我們推薦你選用RIM Java Handle模擬器作為開發(fā)
的首選模擬器,因為它的屏幕很大,看起來很舒服(但是別忘了你的真實設備的屏幕大小)。
在J2MEWTK中,可以設定缺省的模擬器,怎么設呢?從開始菜單選擇J2MEWTK---->Default
Device Selection,在下拉列表框中選擇模擬器的名字,然后單擊OK按鈕即可,J2MEWTK就會把
這種模擬器認為是缺省的模擬器。你也可以在開發(fā)環(huán)境中每次手動選擇模擬器,不過這樣做顯
然比較麻煩。J2MEWTK在初始情況下,默認的模擬器是Default Color Phone,說實在話,我從
來沒有看見過這么難看的手機。

6)-----創(chuàng)建項目
現(xiàn)在開始嘗試開發(fā)J2ME程序。我的選擇是Windows XP 2600 Professional+J2SE SDK 1.3.0+
Tomcat 4.0+J2MEWTK 1.0.3Beta。從開始菜單中選擇J2MEWTK---->Ktoolbar。Ktoolbar是
J2MEWTK提供的一個簡陋的IDE工具。
進入Ktoolbar以后,觀察窗口,在菜單的下面有四個按鈕,分別是:
New Project:創(chuàng)建一個新的項目。
Open Project:打開一個項目。
Setting:對當前項目的環(huán)境進行設置。
Build:編譯項目中的所有Java文件。
Run:啟動缺省的模擬器,將當前項目載入,運行。
Clear Console:清除控制臺輸出。
在上述按鈕的下面,有一個下拉列表框,在這里你可以設置當前項目所使用的模擬器,這個
設置可以覆蓋缺省的模擬器。在此下拉列表框下面,是一個文本框,這就是所謂的控制臺了。
所有編譯、運行信息都會在這個控制臺中輸出。你可以使用Clear Console按鈕將控制臺中的
信息完全清除。
現(xiàn)在來看看菜單。Ktoolbar的菜單極其簡單,沒有什么可說的。Project菜單的package菜單
項的作用是將當前項目打包輸出。這個菜單項特別有用,當你完成項目開發(fā)之后,使用這個菜
單項可以產生一個jar文件,這樣就完成的項目的初步發(fā)布。
現(xiàn)在來創(chuàng)建一個新的項目,單擊New Project按鈕,或者是使用File菜單的同名菜單項。出現(xiàn)
一個新窗口。這個新窗口有兩個文本框,第一個文本框是Project Name,輸入fancy。第二個文
本框是MIDlet Class Name,輸入fancy.test.HelloWorld。然后單擊OK,又出現(xiàn)一個對話框,要
你配置項目的環(huán)境,不理,單擊OK按鈕關閉該窗口,回到Ktoolbar的主窗口。經過上述步驟,你
已經創(chuàng)建了一個名為fancy的J2ME項目。

(7)-----J2MEWTK的目錄結構
安裝J2MEWTK以后,你應該仔細瀏覽一下J2MEWTK的目錄結構,這是一個很好的習慣。J2MEWTK
的目錄結構如下:
appdb文件夾:里面有duke的一些靚照。
apps文件夾:里面有J2MEWTK的一些例子程序,我們建立的項目文件也存放在里面。
bin文件夾:里面全部是exe程序。
docs文件夾:不用多說了,是地球人都知道。
lib文件夾:存放MIDP API。
wtklib文件夾:存放J2MEWTK用到的類庫,以及一些資源文件,比如按鈕的圖標等等。
在這些文件夾中,apps文件夾特別需要留意,這個文件夾有下列子文件夾:
example:存放J2MEWTK的例子,側重于圖形方面,例子比較大,復雜,難看懂。
lib:空,不知道放什么東西。
tmplib:空,不知道放什么東西。
UIDemo:存放J2MEWTK的例子,側重于用戶界面設計方面。例子不大,難度中等。
fancy:這個文件夾原來是沒有的,當我們創(chuàng)建fancy項目的時候,J2MEWTK自動為我們創(chuàng)建的文
件夾。
進入fancy文件夾,它里面又有很多子文件夾,如下所示:
bin:存放項目的打包輸出文件。
classes:存放編譯器產生的class文件。
lib:空,不知道有什么用。
res:存放資源文件,例如項目中用到的圖片。
src:存放項目的源代碼。
tmpclasses:存放編譯器產生的class文件,是classes文件夾的鏡像。
tmplib:空,不知道有什么用,是lib文件夾的鏡像。

(8)-------HelloWorld!
現(xiàn)在該是使用J2ME說Hello World的時候了。選擇你最喜歡的文本編輯器,例如Editplus,
輸入下面的代碼:
package fancy.test;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class HelloWorld extends MIDlet implements CommandListener
{
private Display display;
private form props;

private Command exitCommand = new Command("Exit", Command.EXIT, 1);

public HelloWorld()
{
display = Display.getDisplay(this);
}

public void startApp()
{
props = new form("Hello World");
props.append("Hello World!\n");

props.addCommand(exitCommand);
props.setCommandListener(this);
display.setCurrent(props);
}

public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}

public void destroyApp(boolean unconditional)
{
}

public void pauseApp()
{
display.setCurrent(null);
props = null;
}

}
然后將該文件保存在J2MEWTK_HOME\apps\fancy\src\fancy\test目錄下面,文件名為Hello
World.java。注意:你需要在fancy\src目錄下面創(chuàng)建fancy文件夾,然后再在fancy文件夾下面
創(chuàng)建test文件夾。最后才保存HelloWorld.java文件。
現(xiàn)在轉到J2MEWTK的主窗口,單擊Build按鈕,編譯整個項目,查看控制臺的輸出信息,一切無
誤,再單擊Run按鈕,運行此程序。運行效果如下圖所示:(缺)

(9)-------HelloWorld解釋一
要停電了,只好寫道這里了。
1) package fancy.test;
這行代碼聲明當前類所在的包。這是有必要的。而且這個包名必須和src文件夾中的目錄結
構對應。

2)
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
這兩行代碼導入必要的Java包,這兩個包的作用在后面會提及,這里就不多說了。

3)
public class HelloWorld extends MIDlet implements CommandListener
J2ME程序一般應該繼承MIDlet,實現(xiàn)CommandListener。就如Applet必須繼承Applet,可能實
現(xiàn)Runnable接口一樣。

4)
private Display display;
private form props;
定義兩個私有對象,Display代表屏幕,顯示區(qū)域。form是容器的一種。在J2ME程序中,不但
有容器的概念,還有畫布(Canvas)的概念。這個程序在form容器中顯示文本。

5)
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
聲明一個Command對象。J2ME的事件處理機制和J2SE的事件處理機制不太一樣。在J2ME程序
中,必須預先定義一些Command對象,注冊到程序中。當設備發(fā)生了某個事件,會產生相應的Co
mmand對象,并把它傳遞給一個事件處理函數(shù)----commandAction(),由它對所產生的事件做統(tǒng)
籌處理。


6)
public HelloWorld()
{
display = Display.getDisplay(this);
}
這個是構造函數(shù),函數(shù)內部,調用Display對象的靜態(tài)方法---getDisplay(),獲取屏幕對象,
實例化display變量。這個調用是必要的。你可以在構造函數(shù)中做這個工作,也可以在startApp()
方法中做這個工作。推薦在構造函數(shù)中完成。

7)MIDlet程序的運行流程
構造函數(shù)---->startApp()------>偵聽事件,接受命令------->commandAction()方法----
--->調用別的方法----------->如果是exit命令--------->pauseApp()--------->destroyApp()方法。
實際上MIDlet程序的運行流程和Applet程序的運行流程差不多。


public void startApp()
{
props = new form("Hello World");
props.append("Hello World!\n");

props.addCommand(exitCommand);
props.setCommandListener(this);
display.setCurrent(props);
}
這是startApp()方法。這個方法是父類的抽象方法,在子類中必須予以覆蓋。首先實例化form對象
----------props,form的構造函數(shù)的參數(shù)(Hello World)就是屏幕的標題。form對象
是一容器,在里面可以包含別的東西,props.append(“…..”);的作用就是在這個容器中存放
一個字符串。這個字符串會在屏幕中顯示出來。
接下來的三行代碼分別做這樣的工作:
將Exit命令注冊到form對象(props)中,這樣form對象(props)可以對該命令作出響應。
設置form對象(props)的命令監(jiān)聽者。
將form對象設置為屏幕顯示的對象。
你可以試著注釋掉這三行代碼,再編譯運行這個程序,看看會發(fā)生什么情況。

9)
public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}
這個方法是事件處理的中樞,它接受各種命令,并對其進行分析,再分別調用合適的處理方法。
在這個例子中,當接收到Exit命令以后,馬上銷毀程序,退出。

10)destroyApp()方法的作用是退出程序并銷毀程序對象。pauseApp()方法的作用是暫停程序
,并銷毀容器對象或者是畫布對象。手機屏幕將會是一片空白。

(11)------J2ME的類庫結構
javax.microedition.lcdui:用戶界面包,主要用于構造程序的用戶界面。Command、form都
是這個包的類。
javax.microedition.rms:這個包實現(xiàn)了對手機數(shù)據(jù)的存取功能。
javax.microedition.midlet:這個包是MIDlet程序的聲明周期包,主要定義了MIDlet類,MIDlet
類是一個抽象類,里面聲明了startApp()、destroyApp()、pauseApp()等抽象方法。
javax.microedition.io:網(wǎng)絡IO包。有HttpConnection接口和Connection接口、Datagram接口。
java.io.*
java.lang.*
java.util.*
上面這三個包屬于J2ME核心包,J2ME中的核心包和J2SE中的同名核心包有些差別,主要是功能
大大簡化了,許多類、方法都沒有了,只能實現(xiàn)一些最基本的功能。

------------------------------------------------------------------------------------
網(wǎng)易廣州社區(qū)Java版





相關文章

主站蜘蛛池模板: 日韩福利网 | 色窝窝免费播放视频在线 | 亚洲成色www久久网站 | 亚洲欧洲日韩国产 | 四虎在线播放免费永久视频 | 天天搞天天 | 日本黄色动态图 | 日本高清一区二区三区不卡免费 | 在线午夜 | 欧美一线高本道高清在线 | 亚洲男人的天堂久久无 | 午夜免费在线观看 | 午夜三级国产精品理论三级 | 日韩视频大全 | 中文有码中文字幕免费视频 | 日本成人在线网址 | 午夜美女网站 | 雪白丰满丝袜长腿白嫩在线 | 色综合色狠狠天天久久婷婷基地 | 日本精品网站 | 亚洲 欧美 国产 中文 | 婷婷五月在线视频 | 欧美首页| 日本特黄特色免费大片 | 一级黄色片视频 | 天天躁狠狠躁狠狠躁夜夜躁 | 特黄特色一级特色大片中文 | 四虎最新网站 | 亚洲另类电击调教在线观看 | 性荡视频在线播放视频 | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠扒开双腿 | 亚洲一区在线免费 | 日本中文字幕第一页 | 中文字幕无码中文字幕有码 | 午夜影院在线免费观看 | 亚洲欧美综合网站 | 亚洲αv | 午夜影院在线免费观看 | 色综合久久综合网观看 | 欧美网站www | 正在播放麻豆 |