|
另一方面,雖然Configuration已經將消費性電子產品做了簡單的分類,但是畢竟各種裝置的特性仍然有許多的不同點,例如CLDC雖然包含了手機與PDA,但是手機和PDA的顯示能力卻不完全相同,PDA的顯示螢幕比起手機大的多。因此,J2ME利用Profile再針對各個不同的裝置在做更細部的分類,Profile可以說是在Configuration之上定義另一組額外的類別函式。以手機來說,J2ME便為其定義了MIDP
(Mobile Information Device Profile),MIDP針對手機定義了適用於手機的類別函式,例如簡訊的傳送,聲音的處理等。
在本文中,我們討論的是手機上的J2ME程式開發,因此我們將使用CLDC及MIDP,然而因篇幅有限,我們無法將CLDC與MIDP所定義的函式庫一一的作說明,更詳細的MIDP的版本及所支援的函式庫,讀者可以參考J2ME的官方網站:
http://java.sun.com/j2me/
第一個J2ME程式
下載並安裝J2ME Wireless Toolkit
雖然,目前有許多開發程式可以用來開發J2ME的應用程式,但是對於初學者來說,J2ME Wireless
Toolkit應該可以算是其中最容易取得的工具(從Sun Microsystems網站上便可以直接下載),因此本文將以J2ME
Wireless Toolkit為主。
在安裝J2ME Wireless Toolkit之前必須先安裝J2SE,若讀者沒有安裝J2SE,可以自行從Sun
Microsystems網站上下載,並依照其指示安裝J2SE,若已經安裝過J2SE,則可以省略此步驟。
下載J2SE網址
http://java.sun.com/j2se/
在安裝好J2SE之後,便可以安裝J2ME Wireless Toolkit,一樣從Sun
Microsystems下載,在撰寫這篇文章時,最新版本為J2ME Wireless Toolkit
2.1,所以本文中將以此為操作版本,然而,本文中所提到的程式碼,亦可正常於之前的版本中執行,只是操作畫面會有些許不同,其過程仍是大同小異。
下載J2ME網址
http://java.sun.com/j2me/
在下載完畢後便可以開始進行安裝,首先我們必須指定J2SE的所在路徑,本文中的例子,我們將J2SE安裝在C:\j2sdk1.4.2_04。

接下來設定J2ME Wireless Toolkit的安裝位置,若不想更動則直接使用預設值,直接按Next即可。

接著設定J2ME Wireless Toolkit,在程式集中的名稱。

最後,安裝程式會將剛剛使用者所設定的參數顯示在畫面中,若一切正確無誤,則按Next。

安裝完成。

關於中文化
在Sun Microsystems的網站上有提供J2ME Wireless
Toolkit的中文化套件,但是筆者在一次的程式撰寫經驗中發現,中文化後的J2ME Wireless
Toolkit在有些訊息的顯示上不太正確(訊息有被截斷的情況),因此筆者認為,若非絕對必要,否則不一定要更新中文化套件,沒有更新中文套件並不會影響中文程式的撰寫。
第一次啟動J2ME Wireless Toolkit
我們可以在程式集中找到剛剛所安裝的J2ME Wireless Toolkit,要啟動J2ME Wireless Toolkit請執行
”程式集->J2ME Wireless Toolkit 2.1->KToolbar”。 KToolbar是J2ME Wireless
Toolkit最常使用的工具,它可以用來建立專案、編譯專案、以及啟動模擬器來執行我們所撰寫的應用程式。

在J2ME Wireless Toolkit中內建四種可供選擇的模擬器

模擬器的操作

簡單的J2ME範例程式
建立專案
在安裝好J2ME Wireless Toolkit之後,我們將撰寫一個簡單的範例程式,以示範如何利用J2ME Wireless
Toolkit來撰寫手機上的Java程式。
首先我們建立一個新專案,啟動KToolBar,按下New Project(建立新專案)之後,會出現下面的畫面,我們必須指定專案的名稱以及MIDlet
Class的名稱,在這裡我們要建立的專案名稱為MyFirstProject,而MIDlet Class為HelloWorld,當指定完畢之後便可以按下Create
Project建立專案。

在按下”Create
Project”(建立專案)之後,會出現一個專案設定畫面,我們可以針對我們的專案做一些細部的設定。在這裡我們使用預設值及即可,所以直接按”OK”。

然後我們會看到主控台出現了一些訊息,其主要的內容是告訴我們,剛剛我們所建立的專案,被放置在什麼位置。

以文中所建立的專案為例,J2ME Wireless Toolkit為我們建立的相關目錄如表中所示:
|
專案目錄位於 |
C:\WTK21\apps\MyFirstProject |
|
Java原始檔 |
C:\WTK21\apps\MyFirstProject\src |
|
應用程式資源 |
C:\WTK21\apps\MyFirstProject\res |
|
應用程式函式庫 |
C:\WTK21\apps\MyFirstProject\lib |
程式碼撰寫
J2ME Wireless
Toolkit已經為我們建立好專案所需的相關檔案及目錄,接下來我們便可以利用任何我們所喜歡的編輯器來幫助我們編輯程式碼,我在剛剛建立專案時指定了HelloWorld為我們要建立的MIDlet,所以現在我們撰寫一個HelloWorld.java,並將它放置在C:\WTK21\apps\MyFirstProject\srca目錄中。
HelloWorld.java程式碼內容如下
|
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements
CommandListener {
TextBox text;
private Command enterCommand; // 確定鈕
private Command exitCommand; // 離開鈕
private Display display; // display代表手機上可顯示的裝置
/*
HelloWorld的建構子
*/
public HelloWorld() {
display = Display.getDisplay(this);
text = new TextBox("請輸入您的大名", "", 256, 0);
enterCommand = new Command("確定", Command.SCREEN, 1);
exitCommand = new Command("離開", Command.SCREEN, 2);
}
/*
程式的起始點,其中設定了二個按鈕以及一個用來顯示文字的TextBox
*/
public void startApp() {
text.addCommand(enterCommand);
text.addCommand(exitCommand);
text.setCommandListener(this);
display.setCurrent(text);
}
/*
當應用程式被暫停時,此方法會被呼叫
*/
public void pauseApp() {
}
/*
當應用程式被關閉時,此方法會被呼叫
*/
public void destroyApp(boolean unconditional) {
}
/*
當使用者按下確定按鈕,或離開按鈕時,此方法被呼叫,其中cmd 會
傳入是哪一個按鈕被使用者按下。確定鈕被按下時,程式將顯示歡迎
訊息。離開紐被按下時,程式將被關閉。
*/
public void commandAction(Command cmd, Displayable s) {
if (cmd == enterCommand) {
text.setTitle("歡迎來到J2ME的世界");
text.setString("Hi, "+text.getString() +". 很高興認識你.");
}else if (cmd == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
} |
編譯專案
存檔之後,我們便可以利用J2ME Wireless
Toolkit幫我們編譯剛剛所撰寫的程式,按下Build將剛剛所編輯的應用程式利用J2ME Wireless
Toolkit編譯,若是沒有出現錯誤訊息則表示編譯成功。若是編譯的過程中出現錯誤,則會在主控台中顯示相關的錯誤訊息,使用者必須重新檢查並修正程式中的錯誤,然後重新編譯一次。

執行
若是編譯成功,則可以直接按下Run以執行我們所建立的應用程式,此時J2ME Wireless
Toolkit會自動開啟所選擇的模擬器來執行我們剛剛所寫的程式。

執行結果
以下我們秀出程式的執行結果
|
步驟一
程式一執行,便出現要求使用者輸入姓名的畫面。 |
 |
|
步驟二
輸入姓名之後,按下Menu會出現確定、離開二個選項,利用上下鍵可以在選單中做選擇,這時候請先按下確定。 |
 |
|
步驟三
接著會出現歡迎訊息。 |
 |
|
步驟四
接著使用者欲結束程式,可按下Menu並選擇離開,於是程式便會結束掉。 |
 |
|