<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 手機開發網

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

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


      通常低級事件的處理是為了滿足游戲開發的需要,因為游戲開發相關的問題非常復雜。因此不在這里進行闡述,有興趣的朋友可以和我索要相關的游戲開發資料。MIDP定義了如下鍵值在Canvas類內:
      
      KEY_NUM0
      KEY_NUM1
      KEY_NUM2
      KEY_NUM3
      KEY_NUM4
      KEY_NUM5
      KEY_NUM6
      KEY_NUM7
      KEY_NUM8
      KEY_NUM9
      KEY_STAR
      KEY_POUND
      這些都是按鍵基本值,當然有些手機是觸摸屏的。事件的傳遞是通過如下方法來實現的。
      
      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
    開發者應該繼承Canvas類的同時覆蓋相應的方法來實現低級事件的處理,低級事件的處理是連續的、串行的,在前面的事件返回之前后面的事件不會執行, 當然也有例外,你可以參考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
      
      }
      
      }





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

    Feedback

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

    主站蜘蛛池模板: 国产色婷婷精品免费视频| 成人免费视频软件网站| 免费做爰猛烈吃奶摸视频在线观看| 日韩高清在线免费看| 亚洲伊人色欲综合网| 国产亚洲福利在线视频| 成人在线免费视频| 亚洲一级毛片免费看| 亚洲第一福利网站在线观看| 久久亚洲精品成人综合| 亚洲成a∧人片在线观看无码 | 国产精品亚洲一区二区三区 | 国产精品嫩草影院免费| 亚洲av无码一区二区三区不卡| 亚洲一区二区三区国产精华液| 一级特黄录像视频免费| 最近2019中文字幕mv免费看 | 亚洲精品国产成人影院| 亚洲一卡2卡4卡5卡6卡残暴在线| 国产精品高清免费网站| 女人被男人桶得好爽免费视频| 亚洲天堂男人天堂| 国产成人自产拍免费视频| 国产成人精品免费视频大全五级| 亚洲网红精品大秀在线观看| 国产免费人成视频尤勿视频| 希望影院高清免费观看视频| 亚洲AV无码一区二区三区DV| av片在线观看永久免费| 精品久久免费视频| 亚洲日本一线产区和二线产区对比| 国产激情免费视频在线观看| 综合亚洲伊人午夜网| 成人国产网站v片免费观看| 国产裸模视频免费区无码| 亚洲综合精品伊人久久| 四虎国产精品免费久久| 亚洲人成高清在线播放| 曰批全过程免费视频网址| 精品亚洲A∨无码一区二区三区| 免费无码黄网站在线看|