熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

我的第一個Java Midlet

2013-11-23 19:00:30  來源: Java核心技術 

  最近開始學習為手機開發軟件了

  今天上網搜索了一下相關資料然後就開始寫程序了

  值得一提的是SUN公司目前提供的開發工具已經相當成熟了目前已經發展到Java Platform Micro Edition Software Development Kit 用這套工具可以寫代碼編譯以及調試最令人滿意的是它提供了Mac的版本這樣我就不用為了開發而安裝Windows了

  今天寫的代碼主要是為了了解開發的流程以及基本的技巧主要測試了canvasfontdrawstring等功能學會了如何在屏幕上輸出文字和圖形

  用於屏幕輸出的主要有兩種類型的控件(或者說是類)分別為screen和canvas;

  前者屬於比較高級的控件其跨平台的兼容性比較好例如當你使用textbox(screen的子類)的時候你不用關心坐標字體和顏色等問題這些都由平台負責管理當然你對它的控制力度也變小了你更多的是關注它的功能是否滿足你的需求

  如果用後者則你需要關心的事情就多了因為canvas相當於一塊畫布上面畫什麼在什麼地方畫怎麼畫都需要你考慮控制的力度是比較大但是寫程序也變得相當復雜

  package hello;

  import javaxmicroeditionmidlet*;

  import javaxmicroeditionlcdui*;

  public class HelloMIDlet extends MIDlet implements CommandListener {

  private Command exitCommand; // The exit command

  private Command view;

  private Display display; // The display for this MIDlet

  public HelloMIDlet() {

  display = DisplaygetDisplay(this);

  exitCommand = new Command(Exit CommandEXIT );

  view = new Command(View CommandITEM );

  }

  public void startApp() {

  TextBox t = new TextBox(Hello Hello World! );

  taddCommand(exitCommand);

  taddCommand(view);

  tsetCommandListener(this);

  MyCanvas m=new MyCanvas();

  if (SystemgetProperty(

  microeditioniofileFileConnectionversion) != null)

  tsetTicker(new Ticker(SystemgetProperty(

  microeditioniofileFileConnectionversion)));

  else

  tsetTicker(new Ticker(no));

  displaysetCurrent(t);

  }

  public void pauseApp() {

  }

  public void destroyApp(boolean unconditional) {

  }

  public void commandAction(Command c Displayable s) {

  if (c == exitCommand) {

  destroyApp(false);

  notifyDestroyed();

  }

  }

  }

  package hello;

  import javaxmicroeditionlcdui*;

  public class MyCanvas extends Canvas implements Runnable {

  int count;

  Font font;

  public MyCanvas() {

  Thread th=new Thread(this);

  thstart();

  font=FontgetFont(FontFACE_MONOSPACEFontSTYLE_ITALIC FontSIZE_LARGE);

  }

  //Drawing on canvas

  public void paint(Graphics g) {

  gsetFont(font);

  gsetColor();

  gfillRect();

  gsetColor();

  gfillArc( );

  if(count==)

  {

  gdrawString(counter=+countGraphicsTOP|GraphicsLEFT);

  }

  else

  {

  gsetColor();

  gdrawString(counter=+(count ) GraphicsTOP|GraphicsLEFT);

  gsetColor();

  gdrawString(counter=+countGraphicsTOP|GraphicsLEFT);

  }

  }

  //Handling keyEvents

  protected void keyPressed(int keyCode) {

  repaint();

  }

  public void run() {

  while(true) {

  count++;

  try {

  Threadsleep();

  }catch(Exception e){}

  repaint();

  count%=;

  }

  }

  }

  以上兩個文件經過編譯打包之後就形成個文件分別為HelloWorldjad和HelloWorldjar

  通過藍牙上傳到我的dopod s手機上之後點擊HelloWorldjad文件系統就會進行安裝並運行

  經過檢測我發現我的windows mobile手機支持file connection api看來有得玩啦


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26124.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.