Mobility Pack提供的預處理代碼功能正是為這個問題設計的,你可以通過預處理功能,維護著一套代碼,但是卻可以編譯出多套應用程序。每套應用程序可以針對一個機型或者一系列的機型。下面通過一個例子yanshi如何使用預處理代碼的功能。
首先你需要安裝Netbeans IDE 5.0和Mobility Pack 5.0,然后將Motorola J2ME SDK 5.4.2和SonyEricsson J2ME SDK 2.2.3集成到Netbeans IDE中。方法參考下面的文章
安裝Netbeans IDE 4.1中文版
使用Netbeans IDE 4.1和Mobility Pack開發J2ME應用程序
使用Netbeans IDE集成Motorola J2ME SDK 5.4.2
下面新建一個Mobile項目,命名為PRocode。然后新建TestMIDlet,我們的目的是演示如何使用預處理代碼,因此例子比較簡單,TestMIDlet代碼如下所示:
package com.sun.df;
import javax.microedition.midlet.*;import javax.microedition.lcdui.*;
/***
* @author mingjava
* @version
*/
public class TestMIDlet extends MIDlet {
private Display display = null;private MainCanvas canvas = null;
public void startApp() {if(display == null){
display = Display.getDisplay(this);
canvas = new MainCanvas();
}
display.setCurrent(canvas);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
Netbeans IDE之所以可以根據預處理代碼編譯出多套應用程序,原因在于它將項目與配置綁定到一起。集成了Motorola和SonyEricsson的SDK后,我們就可以把A780和SonyEricsson_K700_Emu的配置添加到項目中,方法是選擇Set Active project Configuration——add Configuration to project。如下圖所示:

MainCanvas的任務是在手機的屏幕上顯示一個字符串,這個字符串應該根據機型不同而不同。例如在Motorola A780上顯示A780,在K700上顯示K700。我們在MainCanvas的構造器中對變量message進行賦值,在代碼編輯器中選擇右鍵,Preprocessor Blocks——Create if/Else Block,向MainCanvas中插入預處理代碼,如下圖所示:

MainCanvas的源碼如下所示:
package com.sun.df;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
/***
* @author mingjava
*/
public class MainCanvas extends Canvas {
private String message = "WTK 2.2";
public MainCanvas() {
//#if A780
//# message = "Motorola A780";
//#elif SonyEricsson_K700_Emu
新聞熱點
疑難解答