亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

J2ME學習筆記(5)—MIDlets中的圖形編程

2019-11-17 06:23:48
字體:
來源:轉載
供稿:網友

  1.概述
  MIDP為運行在MIDP容器中的MIDP應用定義了一個API,此API本身是建立在CLDC API之上的。MIDP用戶接口API的java類設計不是基于Java Abstract Window Toolkit(AWT)類的,而是為移動電話這類小型移動信息設備非凡設計的。這類設備只有有限的屏幕尺寸和鍵盤性能。當程序員采用MIDP編寫圖形應用時,他們只能使用MIDP或CLDC API。
  
  2.MIDP GUI類
  1)所有MIDP GUI類都是javax.microedition.lcdui包的組成部分。
  
  2)MIDP用戶接口的基本抽象圖形是屏幕,Screen類對面向設備的圖形和用戶交互進行了封裝。每次應用只能顯示一個屏幕。
  
  3)MIDP API具有”高級(high-level)”和”低級(low-level)”UI類。
  
  高級UI-----例如Form,List,TextBox,TextField,Alert和Ticker具有設備適配功能,它對圖象,文本,文本域以及單選按鈕等進行支持。
  
  低級UI-----例如Canvas類答應操作者任意繪畫。
  
  3. MIDP GUI中主要的類
  1) Graphics類-----提供了用來繪畫2D幾何對象的Graphics對象。
  
  javax.microedition.lcdui.Graphics類不是在MIDlet中顯式創建的,表示抽象畫面的Canvas類在MIDP GUI編程中提供了paint()方法,piant()方法取類型為Graphics的一個參數,用此參數實現MIDlet中Graphics類的功能。
  
  2) Displayable類-----是一個抽象類 ,Displayable對象處理MIDlet的GUI輸出.它有兩個派生類javax.microedition.lcdui.Canvas和javax.microedition.lcdui.Screen。
  
  3)    Canvas類-----Canvas類答應操作者任意繪畫,與Graphics類都是低級UI.由Graphics類類提供的方法總是在Canvas類的派生類中使用的。
  
  4)    Screen類-----是高級UI,Form,List,TextBox,Alert類都是它的派生類。
  
  4. 下面是Graphics類用法的一段代碼
  import javax.microedition.midlet.*;
  
  import javax.microedition.lcdui.*;
  
  public class MidpGraphics extends MIDlet implements CommandListener
  
  {
      Display display;
  
      testCanvas canvas;
  
      public MidpGraphics()
  
      {
  
         display=Display.getDisplay(this);
  
         canvas=new testCanvas();
  
      }
  
      public void startApp() throws MIDletStateChangeException
  
     {
  
        display.setCurrent(canvas);
  
     }
  
    public void pauseApp()
  
    {
  
    }
  
    public void destroyApp(boolean unconditional) throws MIDletStateChangeException
  
    {
  
    }
  
    public void commandAction(Command c,Displayable d)
  
    {
  
    }
  
  }
  
  class testCanvas extends Canvas
  
  {
      public void paint(Graphics g)
  
      {
  
  //創建字體對象
  
         Font font=Font.getFont 
  
            (Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM);
  
  //設定字體對象       
  
          g.setFont(font);
  
  //繪畫出文本
  
         g.drawString("Hello MIDP",getWidth()/2,getHeight ()/2,Graphics.HCENTERGraphics.TOP);
  
         try
  
         {
  
  //繪畫出圖像
  
             Image image=Image.createImage("myimage.png");
  
             g.drawImage(image,0,0,Graphics.HCENTERGraphics.TOP);
  
         }
  
         catch(Exception e)
  
         {
  
         }  
  
      }
  
  }
  
  運行效果就是在屏幕的中心顯示文本”Hello MIDP”。
  
  5.用MIDlet編程來實現SaveMyMoney銀行應用的不同圖形用戶界面實例代碼:
  1) 任務陳述:第一屏幕顯示包含名為Balance Enquiry(當前余額),Fixed Deposit Enquiry(定期儲蓄),Check Status Enquiry(支票狀況)項的菜單
  
  當用戶選擇Balance Enquiry應顯示進度指示器
  
  當用戶選擇Fixed Deposit Enquiry應顯示進度指示器
  
  當用戶選擇Check Status Enquiry應顯示打入支票號的TextBox
  
  當用戶打入支票號后應顯示進度指示器
  
  2.代碼如下:
  
  // 導入lcdui和Midlet包
  
  import javax.microedition.lcdui.*;
  
  import javax.microedition.midlet.*;
  
  // 定義擴展MidpGui類的MIDlet類
  
  public class MidpGui extends MIDlet implements CommandListener
  
  {
  
  // 由Display類創建顯示治理器
  
     Display display;
  
  // 定義窗體對象 
  
     Form form = new Form("Container Form");
  
  // Screen類派生的
  
  // 定義列表(主菜單)
  
    List menu;
  
  // 定義文本框 
  
    TextBox input;
  
  // Item類的組件 (Gauge類表示顯示屏幕上的一個條形圖)
  
    Gauge gauge = new Gauge("Your enquiry is being   
  // 定義來自Command類的命令
  
    static final Command okCommand = new Command("OK",Command.OK,1);
  
    static final Command backCommand = new Command("Back",Command.BACK,0);
  
    static final Command exitCommand = new Command("Exit", Command.STOP,2);
  
    String currentMenu; // 定義串變量以標識當前的窗體名
  
    public MidpGui()
  
   {
  
   }
  
  /**
  
   * The startApp() starts the MIDlet, creates a list of items and
  
   * Uses the EXIT command */
  
    public void startApp() throws MIDletStateChangeException
  
   {
  
  // 得到display對象
  
     display = Display.getDisplay(this);
  
  // 創建初始菜單并加入項
  
     menu = new List("Enquiries", Choice.IMPLICIT);
  
     menu.append("Current Balance ", null);
  
     menu.append("Fixed Deposit ", null);
  
     menu.append("Check Status ", null);
  
  // 加入Exit命令到窗體
  
     menu.addCommand(exitCommand);
  
     menu.setCommandListener(this);
  
  // 調用mainmenu方法,設置初始屏幕
  
     mainMenu(); 
  
   // 加入計量組件到窗體
  
     form.append(gauge);
  
  }
  
  // mainMenu 方法
  
  void mainMenu()
  
  {
  
   display.setCurrent(menu);
  
   currentMenu = "Main";
  
  }
  
  public void pauseApp() {
  
   form = null;
  
   display = null;
  
   menu = null;
  
   input = null;
  
   gauge = null;
  
  }
  
  // 當MIDlet被撤消是調用
  
  public void destroyApp(boolean unconditional) throws MIDletStateChangeException
  
  {
  
   notifyDestroyed();
  
  }
  
  //顯示TextBox組件
  
  public void showTextBox()
  
  {
  
   input = new TextBox ("Enter the Check Number:", "", 20, TextField.ANY);
  
   input.addCommand(backCommand);
  
   input.addCommand(okCommand);
  
   input.setCommandListener(this);
  
   input.setString("");
  
   display.setCurrent(input);
  
   currentMenu = "input";
  
  }
  
  //顯示進度指示器屏幕
  
  public void showForm()
  
  {
  
   form.addCommand(backCommand);
  
   form.setCommandListener(this);
  
   display.setCurrent(form);
  
   currentMenu = "form";
  
  }
  
  //命令激活
  
  public void commandAction(Command c, Displayable d)
  
  {
  
   String label = c.getLabel();
  
   if (label.equals("Exit"))
  
   {
  
          try{
  
     destroyApp(true);}
  
          catch (

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精彩精品视频| 日韩小视频在线| 日本精品视频网站| 国产精品久久久久久久久久新婚| 国产精品夜色7777狼人| 日韩av电影在线播放| 国产精品白嫩初高中害羞小美女| 日韩精品一区二区视频| 国产香蕉97碰碰久久人人| 色哟哟亚洲精品一区二区| 欧美一级片久久久久久久| 日韩精品视频在线免费观看| 日韩欧美亚洲一二三区| 亚洲欧美日韩视频一区| 国产亚洲欧美日韩精品| 国产欧美一区二区三区视频| 亚洲成人黄色在线观看| 欧美日韩性视频| 欧美激情视频播放| 欧美激情精品久久久久久免费印度| 8x拔播拔播x8国产精品| 日韩中文理论片| 精品毛片三在线观看| 日韩美女在线看| 欧美乱大交xxxxx| 美女啪啪无遮挡免费久久网站| 国产成+人+综合+亚洲欧美丁香花| 久久精品视频在线播放| 精品久久久久久久久久久久久| 亚洲欧美视频在线| 日本午夜人人精品| 国产一区二区黄| 亚洲精品国产精品乱码不99按摩| 68精品久久久久久欧美| 欧美激情xxxxx| 久久手机免费视频| www.国产精品一二区| 国产精品一区二区久久精品| 欧美日韩一区二区精品| 久久久国产精品视频| 日韩高清有码在线| 国产精品扒开腿做| 91久久在线播放| 亚洲成av人片在线观看香蕉| 欧美极品xxxx| 91最新国产视频| 久久天天躁狠狠躁夜夜躁| 91成人免费观看网站| 国产精品免费福利| 日韩亚洲欧美成人| 色av吧综合网| 国产日产欧美a一级在线| 日韩精品视频中文在线观看| 久久视频在线看| 欧美精品性视频| 亚洲综合视频1区| 色久欧美在线视频观看| 午夜免费日韩视频| 国产成人激情视频| 久久久国产精品免费| 日韩黄色高清视频| 国产日韩欧美综合| 久久精品国产一区二区三区| 日韩在线国产精品| 国产精品视频999| 一区二区日韩精品| 日韩精品极品在线观看| 国产视频久久久久久久| 亚洲福利视频专区| 国产精品视频区| 久久久午夜视频| 97国产精品人人爽人人做| 国产精品日韩在线| 日韩免费观看网站| 日韩av免费在线观看| 欧美日韩免费区域视频在线观看| 久久久久久久影视| 国产精品极品尤物在线观看| 国产亚洲一区精品| 日韩视频免费看| 精品视频一区在线视频| 国产精品女人久久久久久| 日韩欧美综合在线视频| 欧美日韩中文在线观看| 国产精品第七影院| 人人做人人澡人人爽欧美| 操91在线视频| 欧美理论片在线观看| 国产精品免费一区二区三区都可以| 亚洲国产成人精品一区二区| 亚洲欧美中文字幕在线一区| 国产激情综合五月久久| 久久久国产影院| 亚洲石原莉奈一区二区在线观看| 91久久久久久久久久久| 亚洲成人激情小说| 一区二区三区久久精品| 精品亚洲一区二区三区在线播放| 欧美日韩亚洲精品内裤| 亚洲精品资源美女情侣酒店| 亚洲国产天堂久久综合| 欧美日韩999| 久久最新资源网| 亚洲最大中文字幕| 国产欧美精品xxxx另类| 中文字幕精品视频| 日韩av网址在线观看| 国产在线观看精品| 国产亚洲欧洲黄色| 欧美性猛交xxxx免费看久久久| 欧美精品在线免费观看| 日韩av片永久免费网站| 久久久免费在线观看| 久久精品国产一区二区电影| 国产免费一区二区三区在线观看| 日韩电影中文字幕| 欧美性xxxxx极品| 日韩精品视频免费| 97视频人免费观看| 国产亚洲精品久久久久动| 国产日韩换脸av一区在线观看| 国产女精品视频网站免费| 日韩欧美在线视频日韩欧美在线视频| 国产精品久久久久久av| 亚洲视频自拍偷拍| 日韩成人激情在线| 久久免费视频网站| 欧美亚洲国产视频小说| 国产精品视频yy9099| 9.1国产丝袜在线观看| 91探花福利精品国产自产在线| 国产精品一区av| 亚洲精品美女视频| 亚洲一区二区免费| 亚洲欧美色图片| 亚洲综合精品伊人久久| 精品免费在线观看| 欧美另类高清videos| 2020久久国产精品| 亚洲天堂免费在线| 国产丝袜视频一区| 国产日产欧美精品| 亚洲精品久久久久久久久| 九九热最新视频//这里只有精品| 欧美成人一二三| 亚洲欧美另类人妖| 久久人体大胆视频| 欧美国产精品日韩| 黄色成人在线免费| 午夜精品在线观看| 中文字幕9999| 欧美裸体xxxx极品少妇| 欧美成人免费在线视频| 日韩风俗一区 二区| 最近的2019中文字幕免费一页| 国产精品福利小视频| 国产精品视频成人| 国产91在线播放九色快色| 狠狠干狠狠久久| 亚洲国产高清高潮精品美女| 久久九九热免费视频| 国产成人精品在线观看| 国产美女高潮久久白浆| 国产一区二区精品丝袜|