หน้าแรก
 การบ้าน
  C/C++ new
  Java new
 Sourcecode.TV
  Android
  Blackberry
  C/C++
  Java
  Linux
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  DoodeeHosting
  รับออกแบบ พัฒนาเว็บไซต์
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะครับ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒนาด้วย HTML5 ...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒนาด้วย HTML5 ...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะคับ
งานเล...

2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลองศึกษาเองได...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก่อนได้นะคับ...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต่อได้ครับ 08...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรือบริษัท
ส...

2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  ถ้าเขียน php ก็ใช้ curl ส่...
2017-04-20 01:04:20
  เขียนโค้ดไม่เป็น เอาโค้ดไป ...
2017-03-27 12:50:54
  คือสงสัยว่าทำไม ต้องอัพเดทด...
2017-03-27 12:37:20
  ทดสอบการตอบ...
2017-02-22 13:10:24
  ลองอีกวิธีเขียน recursive f...
2017-02-14 13:11:03
  อยากได้ โค้ดระบบห้องสมุดมาก...
2017-01-30 11:45:28
  ทำ for-loop ซ้อนกัน
โดย...

2017-01-28 16:00:12
  เดาว่าใช้ Stack เข้ามาช่วย...
2017-01-28 15:57:09
  ยืมเสร็จแล้ว ก็เอามาคืนด้วย...
2016-10-27 14:56:42
  ยืมโค้ดหน่อยครับ...
2016-10-27 14:49:44
  Homework comment
  ทำเอง งง เอง กะลังทำใหม่ค่ะ ^^...
2017-04-18 18:40:46
  ทำเอง งง เอง กะลังทำใหม่ค่ะ ^^...
2017-04-18 18:37:54
  ประเด็นแรก flowchart มันไม่มีภ...
2017-04-18 17:43:33
  อยากได้ flowchart ค่ะ เป็นภาษา...
2017-04-18 16:25:29
  kungking คำถามคืออะไรครับ ?...
2017-03-18 23:28:36
  จงเขียนโปรแกรมแสดงผลรวมของตัวเ...
2017-03-06 10:56:25
  ก็โค้ดทำงานคล้ายๆแบบนี้หละ แต่...
2016-09-06 01:00:12
  ผมอยากทราบว่าโค้ดนับถอยหลังเป็...
2016-09-05 09:31:27
  ได้โค้ดแล้ว ลองศึกษาแล้วเขียนผ...
2016-04-22 00:47:49
  ขอแผนผังของโปรแกรมนับตัวอักษรภ...
2016-04-21 19:24:55
  Article comment
  ครับ คุณ "ติด" แล้วลองนึกต่อว่...
2016-06-18 15:21:09
  vs2008 c# ครับ ขอบคุณครับ...
2016-06-17 14:39:30
  ผมใช้ vs c# ทำตามทุขั้นตอนแต่ต...
2016-06-17 14:37:44
  ต้องวิเคราะห์ครับ "ว่าจริงๆ ส่...
2016-03-12 23:36:05
  ผมส่งข้อความในวง LAN ได้เฉพาะค...
2016-03-12 18:25:42
  โปรแกรม Terminal บน Mac ก็เป็น...
2016-02-16 11:02:01
  โปรแกรม Terminal คืออะไรหรอคะ...
2016-02-16 05:58:21
  ไปตั้ง โครงการไว้เลยครับ ที่
2016-01-25 13:29:55
  ด่วน!!! ต้องการคนเขียน App โดย...
2016-01-25 10:56:34
  ผมได้ทำตามคำแนะนำจนสิ้นสุดแล้ว...
2016-01-20 23:30:25
  9Mcode comment
  อยากได้...
2014-02-21 08:52:19

Link Exchange

อัตราค่าโฆษณา
Statistics of Sourcecode in Thailand
 
 J2ME (Java Micro Edition) Tutorial  

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 J2ME (Java Micro Edition)
 
 

บทที่ 5 ภาคปฏิบัติ

 

บทที่ 5 ภาคปฏิบัติ

ตัวอย่างที่ 1 Hello Canvas

HelloCanvas.java

Download Code Download Code
/*
 * HelloCanvas.java
 *
 * Created on 17 กันยายน 2546, 16:05 น.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 * An example MIDlet with simple "Hello" text and an Exit command.
 * Refer to the startApp, pauseApp, and destroyApp
 * methods so see how each handles the requested transition.
 *
 * @author  suppakit
 * @version
 */
public class HelloCanvas extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command
    private Display display;    // The display for this MIDlet
    
    public HelloCanvas() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
        SimpleCanvas canvas = new SimpleCanvas();
        canvas.addCommand(exitCommand);
        canvas.setCommandListener(this);        
        display.setCurrent(canvas);
    }
    
    /**
     * Pause is a no-op since there are no background activities or
     * record stores that need to be closed.
     */
    public void pauseApp() {
    }
    
    /**
     * Destroy must cleanup everything not handled by the garbage collector.
     * In this case there is nothing to cleanup.
     */
    public void destroyApp(boolean unconditional) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

SimpleCanvas.java

Download Code Download Code
/*
 * SimpleCanvas.java
 *
 * Created on 17 กันยายน 2546, 16:07 น.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class SimpleCanvas extends Canvas {
    /**
     * paint
     */
    public void paint(Graphics g) {
        g.setColor(255,255,255);
        g.fillRect(0,0,getWidth(),getHeight());
        g.setColor(0,0,0);
        g.drawString("Hello Canvas",0,getHeight()/2,Graphics.TOP | Graphics.LEFT);
    }   
   
}

ผลการ Run

HelloCanvas MIDlet
รูปที่ 42 แสดงหน้าต่าง Emulator ที่ run MIDlet ที่เขียนขึ้น

อธิบาย: จะสังเกตุได้ว่า MIDlet ตัวนี้ ประกอบด้วย ไฟล์ 2 ส่วน คือ ส่วนแรก ที่เป็น MIDlet หลัก ที่สืบทอด มาจากคลาส MIDlet และ ส่วนที่สอง เป็นคลาส SimpleCanvas ซึ่งสืบทอดมาจาก Canvas

ซึ่งในการสร้างจะเริ่มต้นจาก การสร้าง MIDlet ตัวแรก ตามแบบที่เคยสร้างๆกันมา จากบทที่แล้ว แต่จะเพิ่มไฟล์ SimpleCanvas ที่จะถูกเก็บไว้ใน path เดียวกับ MIDlet ตัวหลัก เพื่อให้สามารถเรียกใช้งาน เพื่อแสดงผล ดังรูปได้


ตัวอย่างที่ 2 Font MIDlet

FontMIDlet.java

Download Code Download Code
/*
 * FontMIDlet.java
 *
 * Created on 17 กันยายน 2546, 16:05 น.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 * An example MIDlet with simple "Hello" text and an Exit command.
 * Refer to the startApp, pauseApp, and destroyApp
 * methods so see how each handles the requested transition.
 *
 * @author  suppakit
 * @version
 */
public class FontMIDlet extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command
    private Display display;    // The display for this MIDlet
    
    public FontMIDlet() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
   Displayable d = new FontCanvas();
   Display.getDisplay(this).setCurrent(d);
    }
    
    /**
     * Pause is a no-op since there are no background activities or
     * record stores that need to be closed.
     */
    public void pauseApp() {
    }
    
    /**
     * Destroy must cleanup everything not handled by the garbage collector.
     * In this case there is nothing to cleanup.
     */
    public void destroyApp(boolean unconditional) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

FontCanvas.java

Download Code Download Code
/*
 * FontCanvas.java
 *
 * Created on 17 กันยายน 2546, 16:07 น.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class FontCanvas extends Canvas  implements CommandListener {
  private Font mSystemFont, mMonospaceFont, mProportionalFont;
  private Command mBoldCommand, mItalicCommand, mUnderlineCommand;

public FontCanvas(){
  this(Font.STYLE_PLAIN);
}

public FontCanvas(int style){
  setStyle(style);
  mBoldCommand = new Command("Bold", Command.SCREEN, 0);
  mItalicCommand = new Command("Italic", Command.SCREEN, 0);
  mUnderlineCommand = new Command("Underline", Command.SCREEN, 0);
  addCommand(mBoldCommand);
  addCommand(mItalicCommand);
  addCommand(mUnderlineCommand);
  setCommandListener(this);
}

  public void setStyle(int style){
    mSystemFont = Font.getFont(Font.FACE_SYSTEM, style, Font.SIZE_MEDIUM);
    mMonospaceFont = Font.getFont(Font.FACE_MONOSPACE, style, Font.SIZE_MEDIUM);
    mProportionalFont = Font.getFont(Font.FACE_PROPORTIONAL, style, Font.SIZE_MEDIUM);   
  }

    /**
     * paint
     */
    public void paint(Graphics g) {
        int w = getWidth();
   int h = getHeight();

   //Clear the Canvas
   g.setGrayScale(255);
   g.fillRect(0, 0, w-1, h-1);
   g.setGrayScale(0);
   g.drawRect(0, 0, w-1, h-1);

   int x = w/2;
   int y=20;

   y += showFont(g, "System", x, y, mSystemFont);
   y += showFont(g, "Monospace", x, y, mMonospaceFont);
   y += showFont(g, "Proportional", x, y, mProportionalFont);

    }   
  
  private int showFont(Graphics g, String s, int x, int y, Font f){
    g.setFont(f);
    g.drawString(s, x, y, Graphics.TOP | Graphics.HCENTER);
    return f.getHeight();

  }
  
  public void commandAction(Command c, Displayable s){
    boolean isBold = mSystemFont.isBold()^(c == mBoldCommand);
    boolean isItalic = mSystemFont.isItalic()^(c == mItalicCommand);
    boolean isUnderline = mSystemFont.isUnderlined()^(c == mUnderlineCommand);

    int style =
		(isBold ? Font.STYLE_BOLD : 0)|
		(isItalic ? Font.STYLE_ITALIC : 0)|
		(isUnderline ? Font.STYLE_UNDERLINED : 0);
    setStyle(style);
    repaint();

  }
   
}

ผลการ Run

FontMIDlet
รูปที่ 43 แสดงหน้าต่าง Emulator ที่ run MIDlet ที่เขียนขึ้น

อธิบาย: โค้ดข้างต้น เป็นตัวอย่างในการแสดง ฟอนท์ แบบต่างๆ


ตัวอย่างที่ 3 Image MIDlet

  • หลังจากที่คุณได้สร้าง Project ใหม่ที่ชื่อ ImageMIDlet แล้ว
  • ให้ทำการคัดลอกไฟล์ C:\WTK20\apps\photoalbum\res\icons\Duke.png เอาไปไว้ใน C:\WTK20\apps\ImageMIDlet\res
  • คลิกปุ่ม Setting ที่หน้าต่าง ของ J2ME Wireless Tookits
  • เลือกที่แท็บ User Define
  • คลิกปุ่ม Add
  • กำหนด Property Name เป็น Duke คลิก OK
  • ที่ช่อง Value ป้อนข้อความ \res\Duke.png
  • คลิกปุ่ม OK
  • ต่อจากนั้น ก็ให้สร้างไฟล์ ImageCanvas.java แล้วบักทึกไว้ใน path ของ src ของ โปรเจ็คของคุณ
  • ทำการ Build แล้ว Run จะได้ผลตามรูป

ImageMIDlet.java

Download Code Download Code
/*
* ImageMIDlet.java
*
* Created on 17 กันยายน 2546, 16:05 น.
*/

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
* An example MIDlet with simple "Hello" text and an Exit command.
* Refer to the startApp, pauseApp, and destroyApp
* methods so see how each handles the requested transition.
*
* @author suppakit
* @version
*/

public class ImageMIDlet extends MIDlet implements CommandListener {

private Command exitCommand; // The exit command

public ImageMIDlet() {
exitCommand = new Command("Exit", Command.SCREEN, 2);
}

/**
* Start up the Hello MIDlet by creating the TextBox and associating
* the exit command and listener.
*/

public void startApp() {
Displayable d = new ImageCanvas();
Display.getDisplay(this).setCurrent(d);
}

/**
* Pause is a no-op since there are no background activities or
* record stores that need to be closed.
*/

public void pauseApp() {
}

/**
* Destroy must cleanup everything not handled by the garbage collector.
* In this case there is nothing to cleanup.
*/

public void destroyApp(boolean unconditional) {
}

/*
* Respond to commands, including exit
* On the exit command, cleanup and notify that the MIDlet has been destroyed.
*/

public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}

}

ImageCanvas.java

Download Code Download Code
/*
 * ImageCanvas.java
 *
 * Created on 17 กันยายน 2546, 16:07 น.
 */

import javax.microedition.lcdui.*;
import javax.microedition.io.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class ImageCanvas extends Canvas {
    /**
     * paint
     */
    public void paint(Graphics g) {
   g.setColor(255,255,255);
   g.fillRect(0, 0, getWidth(), getHeight());

   try{
    Image icon = Image.createImage("/Duke.png");
    g.drawImage(icon,10,10, Graphics.TOP|Graphics.LEFT);
    g.setColor(128,128,128);
    g.drawRect(9, 9, icon.getWidth()+1, icon.getHeight()+1);
   }catch(java.io.IOException ex){
    g.drawString("No image",10,10, Graphics.TOP|Graphics.LEFT);
   }
 
    }   
  
  
}

ผลการ Run

Image MIDlet
รูปที่ 44 แสดงหน้าต่าง Emulator ของ Nokia 6650
ที่ run MIDlet ที่เขียนขึ้น

อธิบาย: โค้ดข้างต้น เป็นตัวอย่างในการป้อนหมายเลขโทรศัพท์ เข้าไปยัง TextBox พร้อมปุ่ม OK และ Exit


ตัวอย่างที่ 4 TextBox MIDlet

BoxTextMIDlet.java

Download Code Download Code
/*
 * BoxTextMIDlet.java
 *
 * Created on 17 กันยายน 2546, 16:05 น.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 * An example MIDlet with simple "Hello" text and an Exit command.
 * Refer to the startApp, pauseApp, and destroyApp
 * methods so see how each handles the requested transition.
 *
 * @author  suppakit
 * @version
 */
public class BoxTextMIDlet extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command   
    
    public BoxTextMIDlet() {        
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
   Displayable d = new BoxTextCanvas();
   Display.getDisplay(this).setCurrent(d);
    }
    
    /**
     * Pause is a no-op since there are no background activities or
     * record stores that need to be closed.
     */
    public void pauseApp() {
    }
    
    /**
     * Destroy must cleanup everything not handled by the garbage collector.
     * In this case there is nothing to cleanup.
     */
    public void destroyApp(boolean unconditional) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

BoxTextCanvas.java

Download Code Download Code
/*
 * BoxTextCanvas.java
 *
 * Created on 17 กันยายน 2546, 16:07 น.
 */

import javax.microedition.lcdui.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class BoxTextCanvas extends Canvas {
  private Font mFont;
  
  public BoxTextCanvas(){
    mFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_LARGE);
  }

    public void paint(Graphics g) {
   int w = getWidth();
   int h = getHeight();
   g.setColor(255,255,255);
   g.fillRect(0,0,w,h);
   g.setColor(0,0,0);		
   String s = "dolce";
   int stringWidth = mFont.stringWidth(s);
   int stringHeight = mFont.getHeight();
   int x = (w-stringWidth)/2;
   int y = h/2;
   g.setFont(mFont);
   g.drawString(s, x, y, Graphics.TOP|Graphics.LEFT);
   g.drawRect(x, y, stringWidth, stringHeight);
 
    }   
  
  
}

ผลการ Run

BoxText MIDlet
รูปที่ 45 แสดงหน้าต่าง Emulator ของ Nokia 6650
ที่ run MIDlet ที่เขียนขึ้น

อธิบาย: โค้ดข้างต้น เป็นตัวอย่างที่แสดงถึง การสร้าง BoxTextCanvas เพื่อแสดงข้อความ พร้อมกรอบ ที่ต้องการ


ตัวอย่างที่ 5 KeyMIDlet

KeyMIDlet.java

Download Code Download Code
/*
 * KeyMIDlet.java
 *
 * Created on 17 กันยายน 2546, 16:05 น.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 * An example MIDlet with simple "Hello" text and an Exit command.
 * Refer to the startApp, pauseApp, and destroyApp
 * methods so see how each handles the requested transition.
 *
 * @author  suppakit
 * @version
 */
public class KeyMIDlet extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command   
    
    public KeyMIDlet() {        
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
   Displayable d = new KeyCanvas();
   Display.getDisplay(this).setCurrent(d);
    }
    
    /**
     * Pause is a no-op since there are no background activities or
     * record stores that need to be closed.
     */
    public void pauseApp() {
    }
    
    /**
     * Destroy must cleanup everything not handled by the garbage collector.
     * In this case there is nothing to cleanup.
     */
    public void destroyApp(boolean unconditional) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

KeyCanvas.java

Download Code Download Code
/*
 * KeyCanvas.java
 *
 * Created on 17 กันยายน 2546, 16:07 น.
 */

import javax.microedition.lcdui.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class KeyCanvas extends Canvas {
 private Font mFont;
 String mMessage = "[Press keys]";
 
  
  public KeyCanvas(){
  mFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
    
  }

    public void paint(Graphics g) {
   int w = getWidth();
   int h = getHeight();

   //Clear Canvas
   g.setGrayScale(255);
   g.fillRect(0,0,w,h);
   g.setGrayScale(0);
   g.drawRect(0,0,w-1,h-1);
   g.setFont(mFont);

   int x = w/2;
   int y = h/2;

   g.drawString(mMessage, x, y, Graphics.BASELINE|Graphics.HCENTER); 
    }   
  
    protected void keyPressed(int keyCode){
   int gameAction = getGameAction(keyCode);
   switch(gameAction){
    case UP: mMessage = "UP"; break;
    case DOWN: mMessage = "DOWN"; break;
    case LEFT: mMessage = "LEFT"; break;
    case RIGHT: mMessage = "RIGHT"; break;
    case FIRE: mMessage = "FIRE"; break;
    case GAME_A: mMessage = "GAME_A"; break;
    case GAME_B: mMessage = "GAME_B"; break;
    case GAME_C: mMessage = "GAME_C"; break;
    case GAME_D: mMessage = "GAME_D"; break;
    default : mMessage = ""; break;

   }
  repaint(); 
  }

  
}

ผลการ Run

Key MIDlet
รูปที่ 46 แสดงหน้าต่าง Emulator ของ Nokia 6650
ที่ run MIDlet ที่เขียนขึ้น

อธิบาย: โค้ดข้างต้น เป็นตัวอย่างที่แสดงถึง การรับปุ่มกดต่างๆ ที่ใช้ในการสร้างเกมส์ บนระบบ J2ME


ตัวอย่างที่ 6 OffScreen MIDlet

OffScreenMIDlet.java

Download Code Download Code
/*
 * OffScreenMIDlet.java
 *
 * Created on 17 กันยายน 2546, 16:05 น.
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 * An example MIDlet with simple "Hello" text and an Exit command.
 * Refer to the startApp, pauseApp, and destroyApp
 * methods so see how each handles the requested transition.
 *
 * @author  suppakit
 * @version
 */
public class OffScreenMIDlet extends MIDlet implements CommandListener {
    
    private Command exitCommand; // The exit command   
    
    public OffScreenMIDlet() {        
        exitCommand = new Command("Exit", Command.SCREEN, 2);
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
   Displayable d = new OffScreenCanvas();
   Display.getDisplay(this).setCurrent(d);
    }
    
    /**
     * Pause is a no-op since there are no background activities or
     * record stores that need to be closed.
     */
    public void pauseApp() {
    }
    
    /**
     * Destroy must cleanup everything not handled by the garbage collector.
     * In this case there is nothing to cleanup.
     */
    public void destroyApp(boolean unconditional) {
    }
    
    /*
     * Respond to commands, including exit
     * On the exit command, cleanup and notify that the MIDlet has been destroyed.
     */
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
    
}

OffScreenCanvas.java

Download Code Download Code
/*
 * OffScreenCanvas.java
 *
 * Created on 17 กันยายน 2546, 16:07 น.
 */

import javax.microedition.lcdui.*;

/**
 *
 * @author  suppakit
 * @version
 */
public class OffScreenCanvas extends Canvas {
 private Image mImage;

 
  
    public void paint(Graphics g) {
   if(mImage == null){
   initialize();
   g.drawImage(mImage, 0, 0, Graphics.TOP|Graphics.LEFT);
  }
    
  }

    public void initialize(){
     int w = getWidth();
     int h = getHeight();
   mImage = Image.createImage(w,h);
   Graphics g = mImage.getGraphics();
   g.drawRect(0,0,w-1,h-1);
   g.drawLine(0,0,w-1,h-1);
   g.drawLine(w-1,0,0,h-1);
   
    }    
   

  
}

ผลการ Run

OffScreen MIDlet
รูปที่ 47 แสดงหน้าต่าง Emulator ของ Nokia 6650
ที่ run MIDlet ที่เขียนขึ้น

อธิบาย: โค้ดข้างต้น เป็นตัวอย่างที่แสดงถึง การแสดงภาพ ที่สร้างขึ้นมาโดยใช้ คลาส Image

 

BACK

สายต่อหูฟัง และชาร์จไฟ สำหรับ iPhone 7 และ 7 Plus
สายต่อหูฟัง และชาร์จไฟ สำหรับ iPhone 7 และ 7 Plus
หัวแปลงจาก USB-C Type ไปเป็น USB 3.1 สำหรับ MacBook
หัวแปลงจาก USB-C Type ไปเป็น USB 3.1 สำหรับ MacBook
ไขควงสำหรับเครื่อง Macbook Air/Pro
ไขควง สำหรับแกะเครื่อง Macbook Air/Pro (300บาท)
HDMI เข้า 3 ออก  1 มีรีโมท
HDMI เข้า 3 ออก 1 มีรีโมท (350บาท)
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
9M Blog บอกเล่าเรื่องราว การเขียนโปรแกรมของ นายเอ็ม
บริการ ถ่ายภาพรับปริญญา
OrmSin.com: ขายหนังสืองานฝีมือไทย-ญี่ปุ่น-จีน (country crafts)
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ
Freelance รับพัฒนาโปรแกรม

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th