หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  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
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  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
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
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
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  จ้า...
2020-10-18 16:53:21
  พอดีผมเหลื่อแค่ตัดสต๊อก...
2020-05-31 21:49:43
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
 J2ME (Java Micro Edition) Tutorial  

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

 J2ME (Java Micro Edition)
 
 

บทที่ 3 MIDP Programming

 

บทที่ 3 MIDP Programming

MIDlet คือ...?

  • โปรแกรม Java ที่ run บน MIDP environment
  • MIDlet เป็น class ที่อยู่ใน package ของ java.microedition.midlet
  • โปรแกรมที่พัฒนาขึ้นจาก MIDP และ สืบทอดจาก MIDlet
  • class ที่สืบทอดจาก MIDlet class และ Implements (เรียกใช้) 3 method คือ startApp(), pauseApp() และ destroyApp()

ในความเป็นจริงแล้ว การพัฒนา MIDlet จะเป็นในลักษณะเดียวกับการพัฒนา Java Applet คือ Java Applet จะเป็นการสืบทอดจาก class Applet ส่วน MIDP จะเป็นการสืบทอด จาก class MIDlet

 

MIDlet 's Life Cycle

MIDlet's Life Cycle
รูปที่ 7 แสดงวงจรการทำงานของ MIDlet

เมื่อเราได้สร้าง class ที่สืบทอดมาจาก MIDlet Package ที่ชื่อ javax.microedition.midlet.MIDlet แล้ว, class ของเราจะมีวงจร การทำงานเริ่มจากการสร้าง หลังจากนั้นก็จะอยู่ในสถานะ Paused(หยุด) เมื่อเรา ต้องการให้มีการทำงานเกิดขึ้น เราก็ต้องเรียกใช้ method ที่ชื่อ startApp() สถานะของคลาสก็เปลี่ยนไปเป็นสถานะ Active(ทำงาน) ดังรูป, และหากต้องการให้ class หยุดการทำงาน สามารถทำได้โดย เรียกใช้ Method pauseApp(), สุดท้ายก็คือการ จบการทำงาน โดยเรียกใช้ Method destroyApp() โปรแกรมก็จะเข้าสู่สถานะ Destroyed(ถูกทำลาย)

สถานะต่างๆของ MIDlet ,จากรูปที่ 7 จะเห็นได้ว่า MIDlet มีอยู่ 3 สถานะด้วยกัน คือ

- Paused state (สถานะหยุดการทำงาน) จะเกิดขึ้น ตอนแรกที่เราทำการเรียก run โดยการใช้ method startApp(), มีการเรียกใช้ method pauseApp() หรือ notifyPaused()

- Active state (สถานะการทำงาน) จะเกิดขึ้น ตอนแรกที่เริ่มต้นโปรแกรม, มีการเรียกใช้ method startApp() หรือ มีการเรียกใช้ method resumeRequest() ในต้อนที่สถานะการกทำงานยังเป็น pauseApp()

- Destroyed state (สถานะถูกทำลาย) จะเกิดขึ้นหลังจากที่มีการใช้ method destroyApp หรือ notifyDestroy()

จะเห็นได้ว่าในการเปลี่ยนสถานะ (state) ของการทำงาน จะใช้ method 3 อันด้วยกัน คือ

- resumeRequest() ใช้เพื่อ ให้กลับมาอยู่ในสถานะ Active state อีกครั้ง

- notifyPaused() ใช้เพื่อ สั่งหยุดการทำงาน

- notifyDestroy() ใช้เพื่อ สั่งทำลาย เพื่อจบการทำงาน

MIDlet suites

MIDlet suites
รูปที่ 8 แสดงองค์ประกอบของ MIDlet suites

MIDlet suites เป็นที่รวบของ class ของ MIDlet และ ไฟล์รูปภาพต่างๆ ที่เกี่ยวข้องกับการทำงาน, MIDlet suites จะประกอบด้วย 2 ไฟล์หลักๆ คือ

- JAD File เป็น Text file ที่ทำหน้าที่ Application Descriptor (บอกลักษณะ และคุณสมบัติของโปรแกรม) จะเก็บ รายละเอียดของ MIDlet suite ต่างๆ ใช้สำหรับให้อุปกรณ์(เช่นมือถือ)ดาว์นโหลด ไปทำการตรวจสอบ รายละเอียดของโปรแกรม ก่อนการติดตั้ง

- JAR File เป็น File ที่เก็บ MIDlet ต่างๆเอาไว้ รวมทั้ง resource file ที่เกี่ยวข้อง โดยมี Manifest file

ตัวอย่าง JAD File (HelloExamples.jad)

MIDlet-Name: HelloExamples
MIDlet-Vendor: Nokia Pte Ltd
MIDlet-Version: 1.0
MIDlet-Jar-Size: 7808
MIDlet-Jar-URL: HelloExamples.jar

ไฟล์ JAD ข้างต้นจะเป็นการบอกถึงรายละเอียดของ MIDlet suite ว่ามีชื่อว่าอะไร, พัฒนาโดยบริษัทใด, เวอร์ชั่นไหน, ขนาดไฟล์เท่าไหร่, และชื่อไฟล์ JAR ที่ใช้ในการติดตั้งชื่ออะไร (ตรงนี้สามารถใส่ url ที่คุณต้องการให้ download JAR File ได้)

ตัวอย่าง Manifest File

Manifest-Version: 1.0
MIDlet-Name: HelloExamples
MIDlet-Vendor: Nokia Pte Ltd
MIDlet-Version: 1.0
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-1: BouncingTextMIDlet, , example.hello.BouncingTextMIDlet
MIDlet-2: HelloWorldMIDlet, , example.hello.HelloWorldMIDlet

สำหรับ Manifest File ข้างต้นจะบอกถึงรายละเอียดของ JAR File นั้นๆว่า เป็น Manifest เวอร์ชั่น เท่าไหร่, ชื่อ MIDlet ว่าอะไร, พัฒนาโดยใคร, เวอร์ชั่นเท่าไหร่,ใช้ MIDP และ Configuration เวอร์ชั่นอะไร สุดท้ายคือ ประกอบด้วย MIDlet อะไรบ้าง

 

MIDlet Development Steps

MIDlet Development Steps

ขั้นตอนในการการพัฒนา MIDlet จะมีขั้นตอนดังนี้

  1. ทำการสร้าง MIDlet และ ข้อมูลอื่นๆ ที่ต้องใช้ในโปรแกรม เช่น ไฟล์รูปภาพ, ไอคอนต่างๆ
  2. สร้าง MIDlet Suite
  3. สร้าง JAD File
  4. ทดลอง run โปรแกรมผ่าน emulator (โปรแกรมจำลอง)
  5. ทำการตรวจสอบแก้ไข หากมีข้อผิดพลาดให้กลับไปทำตั้งแต่ 1-3 ใหม่อีกครั้ง
  6. สุดท้าย เป็นการทำตัวติดตั้ง สำหรับการติดตั้งเข้าสู่ มือถือ

ในการพัฒนา MIDlet หลังจากที่คุณได้ทำการเขียนโค้ดขึ้นมาแล้ว คุณจะต้องทำการ Compile โค้ดนั้นด้วย Javac (Java Compiler) สิ่งที่ได้คือไฟล์ class ขั้นตอนต่อไปก็คือคุณต้อง นำไฟล์ class ของคุณไปทำการ Preverifier อีกครั้ง ก่อนจะส่งไฟล์ ที่ได้ไปให้กับมือถือ ทดลอง run เพื่อตรวจสอบการทำงาน ว่าถูกต้องอย่างที่ต้องการหรือไม่ (ดูรูปที่ 9 ประกอบ)

Two-Phase Class File Verification Process
รูปที่ 9 แสดงขั้นตอนการ Compile และ Verification

จะเห็นได้ว่าเป็นเรื่องที่ยุ่งยากมาก ในการที่จะเขียน และพัฒนา MIDet ขึ้นมาสักตัว ด้วยเหตุนี้ จึงเกิดการพัฒนา Tools ที่ใช้ในการพัฒนา MIDlet เพื่อให้ผู้พัฒนา มีความสะดวกใน สร้างและพัฒนา MIDlet

 

MIDP Tools

เครื่องมือในการพัฒนา MIDlet ได้มีออกมาหลายค่ายด้วยกัน มีทั้งต้องเสียเงิน และ ให้ Download ฟรี ตัวอย่างเช่น

- J2ME Wireless Toolkit
- Nokia Developer's Suit for J2ME
- MIDP for Palm
- Simplicity for Mobile Device
- Metroworks Code Warrior
- Motorola SDK
- IBM Visual Age for Java Micro edition
- Whiteboard from Zucotto Wireless

ซึ่งในเนื้อหาของเราจะใช้ J2ME Wireless Toolkit ร่วมกับการใช้ Emulator ต่างๆของทาง Nokia เป็นหลัก, สำหรับในขณะที่ผมเขียนหนังสือ เล่มนี้อยู่ Java ก็ได้ ออก J2ME Wireless Toolkit 2.0 ซึ่งเป็น version ใหม่ ที่รองรับกับ MIDP 2.0 ,Wireless Messaging 1.1และ Mobile Media 1.0 ซึ่งก็ยังไม่มี ถือถือ ของค่ายใด ที่รองรับกับ MIDP 2.0 ออกมาจำหน่ายในท้องตลาด

J2ME Wireless Toolkit
รูปที่ 10 แสดงหน้าตาของโปรแกรม KToolbar ที่อยู่ใน
J2ME Wireless Toolkit

J2ME Emulator
รูปที่ 11 แสดงหน้าตาของ Emulator ที่อยู่ใน
J2ME Wireless Toolkit

 

Getting Start

หลังจากที่เราได้ให้ทฤษฎีกันก่อนการเริ่มต้น การเขียนโปรแกรม ก็เพื่อว่าจะทำให้คุณเกิดความเข้าใจกันก่อน ว่าอะไรเป็นอะไร ไม่เช่นแล้วคุณก็จะสงสัยว่า หลายสิ่งหลายอย่างจากโค้ดมาได้อย่างไร แต่ถ้าหากว่าในส่วนของทฤษฎีที่ผ่านมา คุณไม่ค่อยเข้าใจ ก็ไม่เป็นไร ขอให้ทำตัวอย่างต่อไป และหวนกลับไปอ่านอีกครั้ง ก็จะทำความเข้าใจได้ง่ายขึ้น

สิ่งที่จำเป็นในการพัฒนา MIDlet ก็คือ MIDlet Tool ที่เราจะนำมาใช้ เพื่อความสะดวกในกาพัฒนา ทำให้คุณสามารถพัฒนา MIDlet ได้อย่างรวดเร็ว อย่างที่คุณต้องการ สำหรับในบทเรียนนี้ เราจะมาเริ่มจาก การติดตั้งโปรแกรม ที่มีความสำคัญต่อการพัฒนา รวมทั้งการติดตั้ง Nokia Emulator ซึ่งเป็นโปรแกรมจำลองการทำงาน ของมือถือ รุ่นต่างๆ

การติดตั้งและใช้งาน J2ME Wireless Toolkits(WTK)

- ก่อนการติดตั้ง คุณจะต้องทำการ Download Java 2 SDK, SE จาก http://java.sun.com/j2se/downloads.html (ซึ่งในขณะที่ผมเขียน หนังสือเล่มนี้ เป็น vesion 1.4.2), แล้วทำการติดตั้ง

- การติดตั้งโปรแกรม J2ME Wireless Toolkits(WTK),สามารถ Download โปรแกรมได้จาก http://java.sun.com/j2me/download.html แล้วทำการติดตั้งโปรแกรม โปรแกรมที่ติดตั้งแล้ว จะอยู่ใน Path ของ C:\WTK20 ซึ่งในนี้จะมี Folder ที่เก็บทั้ง โค้ด และ library รวมทั้ง document ของ การเขียน J2ME

- การเรียกใช้งานสามารถทำได้โดย เลือกที่เมนู Start->Programs->J2ME Wireless Toolkit 2.0->Ktoolbar จะปรากฏหน้าต่าง ดังรูป

J2ME Wireless Toolkit
รูปที่ 12 แสดงหน้าตาของโปรแกรม KToolbar ที่อยู่ใน
J2ME Wireless Toolkit

- คลิกปุ่ม New Project จะปรากฏหน้าต่าง ให้ป้อนค่า Project Name เป็น Example และ MIDlet Class Name เป็น HelloWorld, ดังรูปที่ 13 แล้วคลิกปุ่ม Create Project

New Project Window
รูปที่ 13 แสดงหน้าต่าง สร้าง Project ใหม่

เมื่อคุณ คลิก Create Project โปรแกรมจะทำการสร้าง Folder ชื่อ Example ตามชื่อของ Project ที่เราตั้งขึ้น โดยจะอยู่ที่ Path C:\WTK20\apps\ , พร้อมทั้งจะมี Folder ย่อยๆที่ทำหน้าที่เก็บข้อมูลต่างๆ เช่น bin =เอาไว้เก็บไฟล์ ที่ผ่านการ complie หรือ make แล้ว, lib =เก็บ library ,res =เก็บไฟล์ resource และ src =เก็บไฟล์โค้ด

- ทำการแก้ไข ค่าของ MicroEdition-Profile เป็น MIDP-1.0 ดังแสดงในรูปที่ 14 แล้วคลิกปุ่ม OK

Settings for project window
รูปที่ 14 แสดงหน้าต่าง Settings for project

- ทำการสร้างไฟล์ HelloWorld.java โดยมีโค้ดดังตารางด้านล่าง, แล้วบันทึกไว้ที่ Path C:\WTK20\apps\src

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;



public class HelloWorld extends MIDlet

{
	private Display display;
	private TextBox t = null;

	public HelloWorld(){}

	public void startApp(  )

	{
		display = Display.getDisplay(this);
		t = new TextBox("Simple MIDlet","Hello World",256,0);		
		display.setCurrent(t);

	}



	protected void pauseApp(  ){}

	protected void destroyApp( boolean unconditional ){}

}

 

- ไปที่หน้าต่าง Ktoolbar แล้วคลิก Run, MIDlet ที่เราเขียนก็จะแสดงให้เห็น บนตัวของ Emulator ดังรูปที่ 15

HelloWorld MIDlet
รูปที่ 15 แสดงหน้าต่าง เมื่อ run HelloWorld

 

การติดตั้งและใช้งาน Sun ONE Studio 4 update 1, Mobile Edition

สำหรับ โปรแกรม Sun ONE Studio 4 update 1, Mobile Edition เป็น MIDlet Tool ที่สะดวกในการใช้งาน เพราะมี Editor ที่ช่วยในการเขียนโปรแกรมได้เร็ว และเป็นระเบียบ รวมทั้งยังสามารถพัฒนาโปรแกรมในส่วนของ Server ได้ เช่น การพัฒนา Servlet ให้ทำงานร่วมกับ MIDlet

- ก่อนการติดตั้ง คุณจะต้องทำการ Download Java 2 SDK, SE จาก http://java.sun.com/j2se/downloads.html (ซึ่งในขณะที่ผมเขียน หนังสือเล่มนี้ เป็น vesion 1.4.2), แล้วทำการติดตั้ง

- การติดตั้งโปรแกรม Sun ONE Studio 4 update 1, Mobile Edition ,สามารถ Download โปรแกรมได้จาก http://wwws.sun.com/software/sundev/jde/index.html,แต่ก่อนที่จะ Download ได้ คุณจะต้องลงทะเบียนกับทาง เว็บเค้าก่อน เมื่อได้ ไฟล์มาแล้วให้ทำการติดตั้ง

- การเรียกใช้งานสามารถทำได้โดย เลือกที่เมนู Start->Programs->Sun Microsystems->Sun ONE Studio 4 ME->Sun ONE Studio จะปรากฏหน้าต่าง ดังรูป ด้านล่าง ให้คุณทำการป้อน Path ของ Directory ที่คุณต้องการเก็บไฟล์ Project ต่างๆของคุณ (ในที่นี้ผมใส่เป็น C:\J2ME)

Enter User Directory
รูปที่ 16 แสดงหน้าต่างรับค่า Path เก็บ Project ของผู้ใช้

ต่อจากนั้น โปรแกรมก็จะให้คุณเลือก แบบของ window mode ที่คุณต้องการใช้งาน ให้คุณเลือก แล้วคลิก Finish จะปรากฏหน้าต่าง ทั้งหมดของโปรแกรม

Explorer
รูปที่ 17 แสดงตำแหน่งของ MIDlet suite และ Folder เก็บไฟล์ตัวอย่าง

- ขั้นตอนต่อไป เราก็จะมาเริ่มสร้าง HelloWorld โดยใช้ Sun One Studio กัน, โดยเริ่มจาก ทำการขวาที่ Local Directory แล้วเลือก New->MIDP->HelloMIDlet

Create new MIDP
รูปที่ 18 แสดงขั้นตอนการสร้าง HelloMIDlet

- จะปรากฎหน้าต่าง New Wizard, ให้ทำการป้อน Name เป็น HelloWorld ดังรูปด้านล่าง, แล้วให้คลิกปุ่ม Finish

New Wizard window
รูปที่ 19 แสดงหน้าต่างป้อนชื่อ MIDlet

- โปรแกรมจะทำการสร้างโค้ดให้คุณโดยอัตโนมัติ ดังรูปที่ 20

Work space
รูปที่ 20 แสดงหน้าต่าง แสดงโค้ดที่ถูกสร้างขึ้น

- ขั้นตอนสุดท้ายให้คุณทดลอง run โปรแกรม โดยกดปุ่ม F6, MIDlet ก็จะถูก run และแสดงผลออกทาง Emulator ดังรูปที่ 21

Emulator
รูปที่ 21 แสดงผลการ run MIDlet

 

ในบทนี้ เราได้ให้ความรู้เกี่ยวกับ ลักษณะการทำงานของ MIDlet และการใช้งาน MIDlet Tool ในการพัฒนา MIDlet สำหรับในเนื้อหาต่อไป เราจะได้เริ่มกล่าวถึง ลักษณะ ของ GUI (Graphic User Interface) ของ MIDP

 

BACK

คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

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

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