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

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

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

    饒榮慶 -- 您今天UCWEB了嗎?--http://www.ucweb.com

    3G 手機開發(fā)網(wǎng)

       :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
    原文:http://javaeye.5d6d.com/thread-90-1-1.html

    深入分析J2ME平臺MIDP低級事件處理機制


      通常低級事件的處理是為了滿足游戲開發(fā)的需要,因為游戲開發(fā)相關(guān)的問題非常復(fù)雜。因此不在這里進行闡述,有興趣的朋友可以和我索要相關(guān)的游戲開發(fā)資料。MIDP定義了如下鍵值在Canvas類內(nèi):
      
      KEY_NUM0
      KEY_NUM1
      KEY_NUM2
      KEY_NUM3
      KEY_NUM4
      KEY_NUM5
      KEY_NUM6
      KEY_NUM7
      KEY_NUM8
      KEY_NUM9
      KEY_STAR
      KEY_POUND
      這些都是按鍵基本值,當(dāng)然有些手機是觸摸屏的。事件的傳遞是通過如下方法來實現(xiàn)的。
      
      protected void keyPressed(int keyCode)
      protected void keyReleased(int keyCode)
      protected void keyRepeated(int keyCode)
      protected void pointerPressed(int x, int y)
      protected void pointerDragged(int x, int y)
      protected void pointerReleased(int x, int y)
      protected void showNotify()
      protected void hideNotify()
      protected abstract void paint(Graphics g)
      commandAction() method of the CommandListener interface
    開發(fā)者應(yīng)該繼承Canvas類的同時覆蓋相應(yīng)的方法來實現(xiàn)低級事件的處理,低級事件的處理是連續(xù)的、串行的,在前面的事件返回之前后面的事件不會執(zhí)行, 當(dāng)然也有例外,你可以參考API doc得到答案。下面是一個例子,它的功能就是在屏幕上顯示出你按下鍵的鍵值,界面非常簡單因此沒有抓圖。代碼如下所示:
      
      //LowLevelMIDlet.java
      
      import javax.microedition.lcdui.Display;
      import javax.microedition.midlet.MIDlet;
      import javax.microedition.midlet.MIDletStateChangeException;
      
      /*
      * Created on 2004-6-24
      *
      * TODO To change the template for this generated file go to
      * Window - Preferences - Java - Code Style - Code Templates
      */
      
      /**
      * @author P2800
      *
      * TODO To change the template for this generated type comment go to Window -
      * Preferences - Java - Code Style - Code Templates
      */
      public class LowLevelMIDlet extends MIDlet
      {
      
      private Display display;
      private KeyCanvas keyCanvas;
      
      /*
      * (non-Javadoc)
      *
      * @see javax.microedition.midlet.MIDlet#startApp()
      */
      protected void startApp() throws MIDletStateChangeException
      {
      // TODO Auto-generated method stub
      display = Display.getDisplay(this);
      keyCanvas = new KeyCanvas();
      display.setCurrent(keyCanvas);
      
      }
      
      /*
      * (non-Javadoc)
      *
      * @see javax.microedition.midlet.MIDlet#pauseApp()
      */
      protected void pauseApp()
      {
      // TODO Auto-generated method stub
      
      }
      
      /*
      * (non-Javadoc)
      *
      * @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
      */
      protected void destroyApp(boolean arg0) throws MIDletStateChangeException
      {
      // TODO Auto-generated method stub
      
      }
      
      }
      
      //KeyCanvas.java
      
      import javax.microedition.lcdui.Canvas;
      import javax.microedition.lcdui.Command;
      import javax.microedition.lcdui.CommandListener;
      import javax.microedition.lcdui.Displayable;
      import javax.microedition.lcdui.Graphics;
      
      /*
      * Created on 2004-6-25
      *
      * TODO To change the template for this generated file go to
      * Window - Preferences - Java - Code Style - Code Templates
      */
      
      /**
      * @author P2800
      *
      * TODO To change the template for this generated type comment go to Window -
      * Preferences - Java - Code Style - Code Templates
      */
      public class KeyCanvas extends Canvas implements CommandListener
      {
      private String key = "Press any key";
      
      /*
      * (non-Javadoc)
      *
      * @see javax.microedition.lcdui.Canvas#paint(javax.microedition.lcdui.Graphics)
      */
      protected void paint(Graphics g)
      {
      // TODO Auto-generated method stub
      g.setColor(255, 255, 255);
      g.fillRect(0, 0, getWidth(), getHeight());
      g.setColor(0, 0, 0);
      g.drawString(key, getWidth() / 2, getHeight() / 2, Graphics.TOP
      | Graphics.HCENTER);
      
      }
      
      public void keyPressed(int keyCode)
      {
      key = keyCode + " is pressed";
      repaint();
      }
      
      public void keyReleased(int keyCode)
      {
      key = keyCode + " is released";
      repaint();
      }
      
      /*
      * (non-Javadoc)
      *
      * @see javax.microedition.lcdui.CommandListener#commandAction(javax.microedition.lcdui.Command,
      *   javax.microedition.lcdui.Displayable)
      */
      public void commandAction(Command arg0, Displayable arg1)
      {
      // TODO Auto-generated method stub
      
      }
      
      }





    爬蟲工作室 -- 專業(yè)的手機軟件開發(fā)工作室
    3G視線 -- 專注手機軟件開發(fā)
    posted on 2007-08-26 23:32 3G工作室 閱讀(656) 評論(0)  編輯  收藏 所屬分類: j2me

    Feedback

    # re: 深入分析J2ME平臺MIDP低級事件處理機制 2007-08-27 16:35 姜利陽
    Good  回復(fù)  更多評論
      

    主站蜘蛛池模板: 一区二区三区在线观看免费 | 亚洲精品中文字幕无码AV| 中文字幕无码毛片免费看| 亚洲综合网美国十次| 免费一级毛片在线播放不收费 | va亚洲va日韩不卡在线观看| 欧洲精品99毛片免费高清观看| 亚洲精品中文字幕无码A片老| 亚洲午夜无码久久久久| 免费精品人在线二线三线区别| 一级毛片在播放免费| 亚洲一区二区三区亚瑟| 国产AV无码专区亚洲AV漫画| 国产香蕉九九久久精品免费 | 亚洲国产精品13p| 中文字幕人成无码免费视频| 国产精品一区二区三区免费| 色噜噜亚洲男人的天堂| 亚洲AV无码国产在丝袜线观看| 免费鲁丝片一级在线观看| 无码专区AAAAAA免费视频| 国产亚洲蜜芽精品久久| 亚洲一区无码中文字幕乱码| 亚洲av午夜福利精品一区| 四虎精品亚洲一区二区三区| 无人影院手机版在线观看免费| 久久er国产精品免费观看2| 黄色网址免费在线| 亚洲狠狠成人综合网| 久久久久亚洲AV片无码下载蜜桃| 免费人成在线观看网站视频| 无码少妇一区二区浪潮免费| 免费福利在线视频| 国产精品高清免费网站 | 日本大片在线看黄a∨免费 | 亚洲男人第一av网站| 国产亚洲精品成人AA片新蒲金 | 最近新韩国日本免费观看| 皇色在线免费视频| xxxxxx日本处大片免费看 | 午夜无遮挡羞羞漫画免费|