หน้าแรก
 การบ้าน
  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)
 
 

บทที่ 5 Low Level User Interface

 

บทที่ 5 Low Level User Interface

Low-Level API

Low-Level API ถูกออกแบบ มาสำหรับ ความต้องการในการพัฒนาโปรแกรม ที่เป็นลักษณะเฉพาะ และต้องการการทำงาน ที่อยู่ นอกเหนือจาก ส่วนของ Control อื่นๆจะทำงานได้ โดยมากจะเป็นการกำหนดตำแหน่งที่แน่นอน และการควบคุมรูปภาพ (Graphic elements) รวมทั้ง การทำงานตอบสนองกับเหตุการณ์ (Events) ต่างๆที่ผู้ใช้ สั่งงานมา

ในการใช้งาน low-level API เราจะต้องทำการสร้าง Class ที่สืบทอด (extends) จากคลาส Canvas

Canvas

Canvas จะเป็นคลาสที่สืบทอดจากคลาส Displayable, มีเมธทอด paint() ที่ใช้ในการแสดงผล และผู้ใช้สามารถใช้ เมธอด repaint() หรือ serviceRepaint() ในการสั่งการทำงาน

Graphics

คลาส Graphics จะประกอบด้วย เมธอด lines, rectangles, arcs, text และ images ในการวาดลงใน คลาส Canvas หรือ คลาส Image พร้อมทั้ง คลาส Graphics มีความสามารถในการ render ภาพ 2D (ภาพ 2 มิติ)

  • Drawing methods, เมธอดต่างๆที่ใช้ในการวาดภาพ ได้แก่
    • drawLine(int x1, int y1, int x2, int y2)
    • drawRect(int x, int y, int width, int height)
    • drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
    • drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
    • fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
    • fillRect(int x, int y, int width, int height)
    • fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
  • Drawing Text and Image, เมธอด ที่ใช้สำหรับพิมพ์ตัวอักษร และวาดภาพ
    • drawChar(char character, int x, int y, int anchor)
    • drawChars(char[] data, int offset, int length, int x, int y int anchor)
    • drawImage(Image img, int x, int y, int anchor)
    • drawString(String str, int x, int y, int anchor)
    • drawSubstring(String str, int offset, int len, int x, int y int anchor)

Coordinate System

ตำแหน่งของจุดบนหน้าจอ จะมีจุดเริ่มต้น (0,0) อยู่ที่มุมบนซ้าย เมื่อต้องการทราบถึงขนาดของ Object ที่สร้างจากคลาส Canvasสามารถทำได้โดยใช้ เมธอด getWidth() และ getHeight()

Color model

สามารถแสดงภาพได้ทั้งสี และ ขาวดำ โดยใช้ เมธอด Display.isColor ตรวจสอบว่าสามารถแสดงสี ได้หรือไม่ และใช้เมธอด Graphics.setColor ในการกำหนดสี หากเป็นการแสดงภาพขาวดำ จะใช้เมธอด Graphics.setGrayScale เพื่อกำหนดระดับของภาพ

Line styles

รูปแบบของเส้นสามารถแสดงได้ เป็นสองแบบ คือ SOLID (เส้นทึบ) หรือ DOTTED (เส้นลายจุด) โดยกำหนดผ่านเมธอด Graphics.setStrokeStyle

Font

รูปแบบตัวอักษร บนอุปกรณ์ที่รองรับกับ J2ME จะมีอยู่ไม่มาก โดยจะสามารถใช้เมธอด Font.getFont เพื่อแสดงแบบของตัวอักษร ที่สามารถใช้งานได้ หากต้องการกำหนดแบบตัวอักษร จะใช้เมธอด Font.setFont ในการกำหนด รูปแบบตัวอักษร ที่ต้องการ คุณสมบัติของรูปแบบตัวอักษร จะมีดังนี้

  • Size: SMALL, MEDIUM, LARGE
  • Face: PROPORTIONAL, MONOSPACE, SYSTEM
  • Style: PLAIN, BOLD, ITALIC, UNDERLINED

Low-Level UI Event

Event (เหตุการณ์) ต่างๆที่เกิดขึ้น สำหรับ User Interface ที่เป็นแบบ Low-Level ได้แก่

  • showNotify()
  • hideNotify()
  • keyPressed()
  • keyRepeated()
  • keyReleased()
  • pointerPressed()
  • pointerDragged()
  • pointerReleased()
  • paint()
  • The CommandListener.commandAction() method

Canvas Visibility

Event (เหตุการณ์) showNotify() จะเกิดขึ้นเมื่อมีการแสดง Object ของ คลาส Canvas นั้นๆ ขึ้นมา และ จะเกิด Event hideNotify() เมื่อมีการหยุดการแสดง Object ของ คลาส Canvas

Key events

หากคุณต้องการ สั่งการทำงานใดๆ ในคลาส Canvas ตามการกดปุ่ม ของผู้ใช้ คุณจะต้องทำการสืบทอดเมธอด ของคลาส Canvas ที่ต้องการ เช่น keyPressed, keyReleased หรือ keyRepeated

Key Codes

สำหรับ รหัสของคีย์ต่างๆของมือถือ จะมีตั้งแต่ 0-9 และ *,# ซึ่งจะมีการกำหนดเป็นค่าคงที่ไว้ใน J2ME อันได้แก่ KEY_NUM0, KEY_NUM1,...KEY_NUM9, KEY_POUND, KEY_STAR

Action keys

ภายในคลาส Canvas เอง ได้มีเมธอด ในการรับ การกดปุ่ม สำหรับการเล่นเกมส์ โดยอาศัยเมธอด getGameActions โดยมีค่าต่างๆของ ปุ่ม เป็น UP, DOWN, LEFT, RIGHT, FIRE, GAME_A, GAME_B, GAME_C, GAME_D ซึ่งค่า ดังกล่าวสามารถใช้ เมธอด getKeyCode เพื่อดูข้อมูลได้

ในบทนี้ เราได้ให้ความรู้เกี่ยวกับ ลักษณะของ Low-Level API ที่จะใช้ในการพัฒนา Class ที่สามารถออกแบบ การแสดงผล และ ควบคุมการทำงาน ให้เป็นไปอย่างที่คุณต้องการ โดยเนื้อหาจะเป็นไปทางทฤษฏี ให้คุณลองดูเนื้อหาในส่วน ของ ภาคปฏิบัติควบคู่ด้วย จะทำให้เข้าใจได้ง่ายยิ่งขึ้น สำหรับในเนื้อหาต่อไป เราจะได้เริ่มกล่าวถึง ลักษณะ การเก็บข้อมูล ในระบบของ J2ME

 

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