บทที่ 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
|