<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工作室 閱讀(658) 評論(0)  編輯  收藏 所屬分類: j2me

    Feedback

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

    主站蜘蛛池模板: 91av在线免费视频| 中国一级毛片免费看视频| 69堂人成无码免费视频果冻传媒| 久久亚洲国产中v天仙www| 和老外3p爽粗大免费视频| 久久久久亚洲精品天堂久久久久久 | 国产免费AV片在线观看| 国产大陆亚洲精品国产| 久久嫩草影院免费看夜色| 亚洲精品乱码久久久久久不卡| 亚洲国产精品自在线一区二区| 美女被cao网站免费看在线看| 亚洲AV人人澡人人爽人人夜夜| 久草免费福利资源站| 中文字幕亚洲精品| 日韩视频在线精品视频免费观看 | 亚洲a级成人片在线观看| 成人免费视频77777| 亚洲日韩v无码中文字幕| 国产午夜精品久久久久免费视 | 亚洲色大成网站www永久| 啦啦啦中文在线观看电视剧免费版| 亚洲综合小说另类图片动图| 国产精品无码一区二区三区免费| 黄网站色成年片大免费高清| 亚洲国产一二三精品无码| 人妻丰满熟妇无码区免费| 亚洲国产精品免费观看| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 国产偷伦视频免费观看| 亚洲春黄在线观看| 色视频色露露永久免费观看| 九九热久久免费视频| 麻豆亚洲AV永久无码精品久久| 黄页网站在线看免费| 国产精品日本亚洲777| 亚洲成av人在线视| 日韩精品福利片午夜免费观着| 一级片在线免费看| 亚洲成无码人在线观看| 免费成人在线观看|