程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用NetBeans進行J2ME開發(一):別讓程序員的手機閒著

使用NetBeans進行J2ME開發(一):別讓程序員的手機閒著

編輯:關於JAVA

我們是程序員,我們沒有各種各樣的應酬,電腦和網絡就是我們的整個世界。上班之余,我們該如何自娛自樂呢?想一想我們每天別在褲腰帶上的手機,再想一想我們已經非常熟悉Java,那麼,我們為什麼不寫幾個J2ME的手機程序玩玩呢?

首先,我們需要搭建一個開發環境。Eclipse和NetBeans都是好選擇。我這裡選擇的是NetBeans 5.5.1加Mobile Pack 5.5.1, 它們的下載地址如下圖:

點擊上面的Download NetBeans IDE按鈕,就可以進入到詳細的下載頁面,如下圖,這裡,我們只需要NetBeans和MobilePack,其它的我們用不到。

下載完成後,運行安裝程序,安裝完後,運行NetBeans IDE,如下圖:

本來以為,NetBeans IDE的界面是使用Swing編寫的,肯定漂亮不起來。現在一看,以前的偏見都沒有了,這個界面的確很漂亮,看來SUN再超越Eclipse方面的確下了不少功夫。在這個啟動界面中,我們甚至可以訪問NetBeans星球中的博客,確實令人耳目一新。此外,從NetBeans IDE的菜單來看,似乎功能比Eclipse要多,看來以後還得好好探索才行啊。至於NetBeans速度慢的問題,我再也不需擔心,因為我剛配置了一個雙核CPU加4G內存的台式機。這也正是為什麼我直到現在才涉足NetBeans的原因。

廢話少說,下面來看看怎麼編寫手機程序吧。

首先,新建項目,在類別中選Mobile,在項目中選“Mobile應用程序”,如下圖:

點下一步,在這裡輸入項目的名稱和保存項目的位置,注意這裡,我們取消了“創建Hello MIDlet”前面的選擇,如下圖:

在點下一步,在下面的對話框中選擇CLDC和MIDP的版本,如下圖:

在這裡,肯定有人要問:“什麼是CLDC?什麼MIDP呢?”這是兩個規范。CLDC(連接受限設備配置)定義了我們的手機應該提供什麼樣的虛擬機和什麼樣的核心Java類庫,比如我們下面的程序中用到的java.lang.String類,java.io.ByteArrayOutputStream類等等。那麼為什麼要選擇CLDC1.0而不是1.1呢?那就要看你的手機了,我的Nokia手機就只支持CLDC1.0。MIDP(移動信息設備簡表)位於CLDC基礎之上,為開發者提供了應用程序模型、圖形用戶界面等功能,比如我們下面的程序中用到的javax.microediton.midlet.MIDlet類、javax.microediton.lcdui.Display類,甚至我們以後編寫游戲用到的javax.microedition.lcdui.game.*包中的類,都是MIDP規范定義的,也就是說,只要我們的手機滿足這兩個規范,我們使用這些類寫的程序就能夠在手機上正常運行。現在最流行的MIDP版本為2.0。大家在為自己的手機寫程序的時候,請參考用戶手冊。

點擊完成,我們就創建好了項目。

在項目名稱上面單擊鼠標右鍵,在快捷菜單中選擇新建Java包,這一步,可以讓我們創建一個包來保存我們的程序代碼,如下圖:

下一步,輸入包名:

下一步,當然是新建一個MIDlet了,這裡的MIDlet,是一個繼承自javax.microedition.midlet.MIDlet類的Java類,也就是我們的手機程序的主程序,好比浏覽器小程序稱為Applet,而服務期端程序稱為Servlet,這麼一對比,就不難理解MIDlet的概念了。如下圖:

輸入類名,如下圖,在這個圖中可以看出,我們還可以為我們的程序指定圖標,圖標可以是一個png格式的圖片文件,我們這裡省略,因為我們還沒有為我們的程序准備這樣的資源。

點擊完成,下面就是IDE為我們自動生成的代碼:

這個自動生成的代碼代表了一個手機程序的生命周期,其中的startApp()就相當於普通Java程序的main(),而其它兩個方法,則分別在程序暫停和程序退出的時候執行。我們對該程序進行擴充,代碼如下:

/**/ /*
* MyFirstMidlet.java
*
* Created on 2007年7月16日, 下午8:38
  */
package com.xkland.j2me;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.microedition.midlet. * ;
import javax.microedition.lcdui. * ;
/** */ /**
*
* @author  海邊沫沫
* @version
  */
  public  class MyFirstMidlet extends MIDlet implements CommandListener  {
   private Display display =  null ;
   private Form mainForm =  null ;
   public  static  final Command exitCommand =  new Command( " 退出 " ,Command.OK, 1 );
   public  void startApp()  {
     if (display == null ) {
       display = Display.getDisplay( this );
     }
     mainForm =  new Form( " MyFirstMobileApplication " );
     String text =  " 歡迎來到J2ME開發世界! " ;
     mainForm.append(text);
     mainForm.addCommand(exitCommand);
     mainForm.setCommandListener( this );
     display.setCurrent(mainForm);
   }
   public  void pauseApp()  {
   }
   public  void destroyApp( boolean unconditional)  {
   }
   public  void commandAction(Command cmd, Displayable displayable) {
     if (cmd == exitCommand) {
       destroyApp( false );
       notifyDestroyed();
     }
   }
}

對這段代碼,我做一些簡單的解釋:

1.我們的類implements了CommandListener接口,這個接口需要我們實現commandAction方法,而實現這個接口和方法的目的,就是為了對手機的按鍵做出響應;

2.在這個程序界面中,我們用到了Form類,在Form中添加了字符串,然後再調用display.setCurrent方法顯示這個Form,這裡,display代表了手機的屏幕,而Form是充滿這個屏幕的一個用戶控件;

3.這個程序用定義了一個Command對象,而通過Form.addCommand方法加入這個Command對象,這樣,在手機的菜單條中就會顯示一個“退出”按鈕,至於顯示在屏幕的左下方還是右下方,那就根據手機而不同了,當我們點擊這個按鈕的時候,就會觸發CommandListener的commandAction方法,我們通過Form.addCommandListener添加監聽器。

在項目的快捷菜單中點擊運行項目,如下圖:

下面是運行效果:

按下模擬器的啟動鍵,就可以啟動程序,如下圖:

點擊模擬器上的退出鍵,就可以退出程序。

今天就寫到這裡了。現在我們得到的,只是一個能夠在模擬器上運行的簡單程序。我們該如何把它弄到我們的手機上面呢?我們又該如何編寫更加復雜的用戶界面呢?怎麼樣才能編寫游戲呢?且看我慢慢寫來。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved