<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    京山游俠

    專注技術(shù),拒絕扯淡
    posts - 50, comments - 868, trackbacks - 0, articles - 0
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

      我們是程序員,我們沒有各種各樣的應(yīng)酬,電腦和網(wǎng)絡(luò)就是我們的整個(gè)世界。上班之余,我們?cè)撊绾巫詩(shī)首詷?lè)呢?想一想我們每天別在褲腰帶上的手機(jī),再想一想我們已經(jīng)非常熟悉Java,那么,我們?yōu)槭裁床粚憥讉€(gè)J2ME的手機(jī)程序玩玩呢?

      首先,我們需要搭建一個(gè)開發(fā)環(huán)境。Eclipse和NetBeans都是好選擇。我這里選擇的是NetBeans 5.5.1加Mobile Pack 5.5.1, 它們的下載地址如下圖:
      ? 01.PNG
      
      點(diǎn)擊上面的Download NetBeans IDE按鈕,就可以進(jìn)入到詳細(xì)的下載頁(yè)面,如下圖,這里,我們只需要NetBeans和MobilePack,其它的我們用不到。

      02.PNG

      下載完成后,運(yùn)行安裝程序,安裝完后,運(yùn)行NetBeans IDE,如下圖:

      03.PNG

      本來(lái)以為,NetBeans IDE的界面是使用Swing編寫的,肯定漂亮不起來(lái)。現(xiàn)在一看,以前的偏見都沒有了,這個(gè)界面的確很漂亮,看來(lái)SUN再超越Eclipse方面的確下了不少功夫。在這個(gè)啟動(dòng)界面中,我們甚至可以訪問(wèn)NetBeans星球中的博客,確實(shí)令人耳目一新。此外,從NetBeans IDE的菜單來(lái)看,似乎功能比Eclipse要多,看來(lái)以后還得好好探索才行啊。至于NetBeans速度慢的問(wèn)題,我再也不需擔(dān)心,因?yàn)槲覄偱渲昧艘粋€(gè)雙核CPU加4G內(nèi)存的臺(tái)式機(jī)。這也正是為什么我直到現(xiàn)在才涉足NetBeans的原因。

      廢話少說(shuō),下面來(lái)看看怎么編寫手機(jī)程序吧。

      首先,新建項(xiàng)目,在類別中選Mobile,在項(xiàng)目中選“Mobile應(yīng)用程序”,如下圖:
      04.PNG

      點(diǎn)下一步,在這里輸入項(xiàng)目的名稱和保存項(xiàng)目的位置,注意這里,我們?nèi)∠恕皠?chuàng)建Hello MIDlet”前面的選擇,如下圖:
      05.PNG

      在點(diǎn)下一步,在下面的對(duì)話框中選擇CLDC和MIDP的版本,如下圖:
      06.PNG

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

      點(diǎn)擊完成,我們就創(chuàng)建好了項(xiàng)目。

      在項(xiàng)目名稱上面單擊鼠標(biāo)右鍵,在快捷菜單中選擇新建Java包,這一步,可以讓我們創(chuàng)建一個(gè)包來(lái)保存我們的程序代碼,如下圖:
      07.PNG

      下一步,輸入包名:
      08.PNG

      下一步,當(dāng)然是新建一個(gè)MIDlet了,這里的MIDlet,是一個(gè)繼承自javax.microedition.midlet.MIDlet類的Java類,也就是我們的手機(jī)程序的主程序,好比瀏覽器小程序稱為Applet,而服務(wù)期端程序稱為Servlet,這么一對(duì)比,就不難理解MIDlet的概念了。如下圖:
      09.PNG

      輸入類名,如下圖,在這個(gè)圖中可以看出,我們還可以為我們的程序指定圖標(biāo),圖標(biāo)可以是一個(gè)png格式的圖片文件,我們這里省略,因?yàn)槲覀冞€沒有為我們的程序準(zhǔn)備這樣的資源。
      10.PNG

      點(diǎn)擊完成,下面就是IDE為我們自動(dòng)生成的代碼:
      11.PNG

      這個(gè)自動(dòng)生成的代碼代表了一個(gè)手機(jī)程序的生命周期,其中的startApp()就相當(dāng)于普通Java程序的main(),而其它兩個(gè)方法,則分別在程序暫停和程序退出的時(shí)候執(zhí)行。我們對(duì)該程序進(jìn)行擴(kuò)充,代碼如下:

    /*
    ?*?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?
    = ? " 歡迎來(lái)到J2ME開發(fā)世界! " ;
    ????????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();
    ????????}

    ????}

    }

      對(duì)這段代碼,我做一些簡(jiǎn)單的解釋:
      1.我們的類implements了CommandListener接口,這個(gè)接口需要我們實(shí)現(xiàn)commandAction方法,而實(shí)現(xiàn)這個(gè)接口和方法的目的,就是為了對(duì)手機(jī)的按鍵做出響應(yīng);
      2.在這個(gè)程序界面中,我們用到了Form類,在Form中添加了字符串,然后再調(diào)用display.setCurrent方法顯示這個(gè)Form,這里,display代表了手機(jī)的屏幕,而Form是充滿這個(gè)屏幕的一個(gè)用戶控件;
      3.這個(gè)程序用定義了一個(gè)Command對(duì)象,而通過(guò)Form.addCommand方法加入這個(gè)Command對(duì)象,這樣,在手機(jī)的菜單條中就會(huì)顯示一個(gè)“退出”按鈕,至于顯示在屏幕的左下方還是右下方,那就根據(jù)手機(jī)而不同了,當(dāng)我們點(diǎn)擊這個(gè)按鈕的時(shí)候,就會(huì)觸發(fā)CommandListener的commandAction方法,我們通過(guò)Form.addCommandListener添加監(jiān)聽器。

      在項(xiàng)目的快捷菜單中點(diǎn)擊運(yùn)行項(xiàng)目,如下圖:
      12.PNG

      下面是運(yùn)行效果:
      13.PNG

      按下模擬器的啟動(dòng)鍵,就可以啟動(dòng)程序,如下圖:
      14.PNG

      點(diǎn)擊模擬器上的退出鍵,就可以退出程序。

      今天就寫到這里了。現(xiàn)在我們得到的,只是一個(gè)能夠在模擬器上運(yùn)行的簡(jiǎn)單程序。我們?cè)撊绾伟阉轿覀兊氖謾C(jī)上面呢?我們又該如何編寫更加復(fù)雜的用戶界面呢?怎么樣才能編寫游戲呢?且看我慢慢寫來(lái)。


    評(píng)論

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2007-07-16 21:17 by 山風(fēng)小子
    支持,以后我也研究研究游戲編程 :)

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2007-07-17 09:40 by BlueBrook
    羨慕,雙核+4G
    我畢設(shè)就是做的手機(jī)游戲

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2007-07-17 11:32 by 三告習(xí)習(xí)
    “雙核CPU加4G內(nèi)存的臺(tái)式機(jī)”
    .........這個(gè)要求也夠高了
    期待下文~~~~~~~~

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2007-07-17 11:59 by BeanSoft
    Netbeans 開發(fā) Swing 和 J2ME 無(wú)人能敵啊, 不知道整死了多少做 J2ME 開發(fā)工具的公司.

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2007-07-19 11:20 by cjj
    期待后續(xù)

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2007-07-30 16:40 by 小白之家
    經(jīng)典,這個(gè)好,現(xiàn)在的j2me的虛擬手機(jī)平臺(tái)有漢化版要收費(fèi)

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2007-08-01 20:27 by mxp
    看了您這篇文章后,非常受啟發(fā),一直想學(xué)學(xué)J2ME,這篇文章讓我入門了,謝謝

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2007-08-07 21:36 by Fang.W
    頂,我一直用的是Eclipse,雖然沒有什么不方便。但是還是想用用這個(gè)netbeans。

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著[未登錄]  回復(fù)  更多評(píng)論   

    2008-03-22 16:25 by 小熊
    您對(duì)我的啟發(fā)太大了,謝謝,真誠(chéng)的希望您能繼續(xù),為像我一樣的菜鳥引路。再次感謝。

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2008-03-22 22:39 by ralphwho
    very good entry level tutorial. thank you

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2008-03-24 09:06 by Nik_Lu
    感謝您為我指路,我也想了解J2ME

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著[未登錄]  回復(fù)  更多評(píng)論   

    2008-12-04 17:00 by roy
    支持支持!!學(xué)習(xí)了~以后把自己的手機(jī)好好利用起來(lái)

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2009-02-14 13:19 by flyliying
    退出在左邊還是右邊
    public static final Command exitCommand = new Command( " 退出 " ,Command.OK, 1 );

    應(yīng)該是是這樣寫
    public static final Command exitCommand = new Command( " 退出 " ,Command.EXIT, 1 );

    大家可以試試看

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2009-12-29 10:19 by Wilzo
    感動(dòng)...
    我就是想找這類型的教程...
    簡(jiǎn)單易懂...

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2010-09-14 11:00 by travel
    頂樓主,通過(guò)這個(gè)可以跑起來(lái)的實(shí)例,我更感興趣了!

    # re: 使用NetBeans進(jìn)行J2ME開發(fā)(一):別讓程序員的手機(jī)閑著  回復(fù)  更多評(píng)論   

    2014-07-22 18:11 by 小王
    為什么我用BETBEANS IDE運(yùn)氣 構(gòu)建成功后 模擬界面很快就消失?
    主站蜘蛛池模板: 亚洲1区2区3区精华液| 国产高清在线免费视频| 日韩在线观看视频免费| 亚洲国产理论片在线播放| 亚洲一区无码中文字幕| 国产乱弄免费视频| 18禁超污无遮挡无码免费网站国产| 一级毛片免费观看| a毛片视频免费观看影院| 一区二区三区精品高清视频免费在线播放 | 国产乱辈通伦影片在线播放亚洲 | 亚洲一区无码中文字幕| 免费欧洲毛片A级视频无风险| 最近中文字幕无免费视频| 四虎在线最新永久免费| 免费人妻无码不卡中文字幕系| 91成人免费福利网站在线| 一区二区三区免费高清视频| 污视频网站免费观看| 国产成人亚洲精品播放器下载 | 免费无码不卡视频在线观看| 最近免费中文字幕mv在线电影| 成人片黄网站色大片免费观看APP| 又大又硬又粗又黄的视频免费看| 国产一区二区三区亚洲综合| 亚洲成a人无码亚洲成www牛牛| 亚洲中文字幕一二三四区苍井空| 亚洲国产电影在线观看| 亚洲影视一区二区| 亚洲成人动漫在线观看| 亚洲国产精品午夜电影| 亚洲乱人伦精品图片| 精品亚洲AV无码一区二区三区| 亚洲免费视频观看| 99热亚洲色精品国产88| 亚洲中文无码mv| 在线观看亚洲电影| 国产免费A∨在线播放| 日韩免费电影网站| 亚洲最大免费视频网| 中国在线观看免费高清完整版|