หน้าแรก
 การบ้าน
  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
  ถ้าผมต้องกา...
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
  สนใจคะ ติดต่...
2012-11-12 11:07:46
  รับทำโปรเจ็...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  ระบบจองตั...
2017-11-18 15:42:48
  โปรแกรมจอ...
2017-11-18 15:40:29
  ผมลอง gotoxy แ...
2017-08-28 11:45:52
  ลองสร้างต...
2017-08-27 20:09:01
  #define GLUT_DISABLE_ATEXIT...
2017-08-27 12:53:17
  ผมมีคลิปส...
2017-08-27 10:50:02
  รับ สอน matlab ...
2017-06-03 16:27:23
  เฉพาะทางข...
2017-05-25 16:18:08
  โห เครื่อ...
2017-05-25 16:12:47
  ถ้าเขียน ph...
2017-04-20 01:04:20
  Homework comment
  โค้ดตัวอย่...
2017-11-26 14:50:05
  คำนวณค่าน้...
2017-11-20 23:15:26
  ขอบคุณมากค...
2017-08-16 18:27:25
  ทำเอง งง เอ...
2017-04-18 18:40:46
  ทำเอง งง เอ...
2017-04-18 18:37:54
  ประเด็นแรก...
2017-04-18 17:43:33
  อยากได้ flowchar...
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
  Article comment
  มีcode ของ VB ไห...
2017-09-28 16:50:02
  น่าจะได้คร...
2017-07-11 09:59:35
  สามารถใช้ต...
2017-07-05 10:12:35
  ครับ คุณ "ติ...
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
  ผมส่งข้อคว...
2016-03-12 18:25:42
  โปรแกรม Terminal...
2016-02-16 11:02:01
  โปรแกรม Terminal...
2016-02-16 05:58:21
  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 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

สายต่อจอ สำหรับเครื่อง macbook pro 2016 (usb-c to HDMI)
สายต่อจอ สำหรับเครื่อง macbook pro 2016 (usb-c to HDMI) ความละเอียดระดับ 4K
หัวแปลง Mini DisplayPort to HDMI Adapter หัวแปลง Mini DisplayPort to HDMI Adapter สำหรับเครื่อง macbook air/pro, mac mini
หัวแปลง Mini DisplayPort to HDMI Adapter สำหรับเครื่อง macbook air/pro, mac mini
สายต่อหูฟัง และชาร์จไฟ สำหรับ 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