บทที่ 6 Low Level GUI 1 - ผศ.วิวัฒน์ ชินนาทศิริกุล
Download
Report
Transcript บทที่ 6 Low Level GUI 1 - ผศ.วิวัฒน์ ชินนาทศิริกุล
Low Level GUI
อ.วิวฒ
ั น์ ชินนาทศิริกุล
คลาส Canvas
การเขียน MIDlet แบบกราฟิ ก คลาสที่ใช้คาสัง่ เกี่ยวกับการวาดรูปหรือ
กราฟิ ก ต้องเป็ นคลาสที่ขยาย (extends) มาจากคลาส Canvas
Layout of Canvas
จุดพิกดั (x,y) บนหน้าจอมือถือ จะเริ่มจากมุมบนซ้าย ที่ตาแหน่ ง
(0,0)
โดยที่ค่า x จะเพิ่มขึ้ นจากซ้ายไปขวา ค่า y จะเพิ่มขึ้ นจากบนลงล่าง
สามารถทราบขนาดของ Canvas ได้โดยเรียกใช้เมธอด getWidth()
และ getHeight() ของคลาส Canvas
Graphics Class
การวาดภาพกราฟิ กต่างๆ เช่น เส้นตรง รูปสี่เหลี่ยม รูปวงกลม จะใช้
อินสแตนท์ของคลาส Graphic
โดยเรียกใช้เมธอด paint() ซึ่งการใช้งานจะไม่เรียกใช้เมธอด
paint() โดยตรง แต่เมธอด paint() จะถูกเรียกใช้อตั โนมัติเมื่อ
เมธอด setCurrent() ถูกเรียกใช้เมื่อมีการเริ่มต้น Midlet
ตัวอย่าง การวาดเส้น
ผลการรัน
การกาหนดสี
ก่อนวาดภาพกราฟิ กส์ จะต้องกาหนดสีเสียก่อน โดยใช้เมธอด
setColor() ของอ็อบเจกต์ Graphics
ในเมธอด setColor() จะมีการระบุสีลงไป ซึ่งสามารถระบุสีที่
ต้องการได้ 2 วิธีคือ
1. ระบุสี เป็ นตัวเลขฐาน 16 เพียงค่าเดียว เช่น
g.setColor(0xFFFFFF)
2. ระบุสี โดยแยกตามค่าแม่สี (Red , Green ,Blue) เช่น
g.setColor(255,100,255)
ตัวอย่างค่าสี
สี
Red
Green
Blue
ฐาน16
ขาว
255
255
255
0xFFFFFF
ดา
0
0
0
0x000000
แดง
255
0
0
0xFF0000
เหลือง
255
255
0
0xFFFF00
ม่วง
255
0
255
0xFF00FF
เมธอดที่ใช้วาดเส้นตรง
ใช้เมธอด drawLine() ของอ็อบเจกต์ของคลาส Graphics
รูปแบบ
drawLine(int x1, int y1 , int x2 ,int y2)
โดยที่
x1 , y1 เป็ นจุดพิกดั เริ่มต้นของเส้นตรง
x2 , y2 เป็ นจุดพิกดั สุดท้ายของเส้นตรง
ตัวอย่าง โปรแกรมวาดตารางบนหน้าจอ
ตัวอย่าง โปรแกรมวาดตารางบนหน้าจอ (ต่อ)
ผลการรันโปรแกรม
เมธอดที่ใช้วาดรูปสี่เหลี่ยมโปร่ง
ใช้เมธอด drawRect() ของอ็อบเจกต์ของคลาส Graphics
รูปแบบ
drawRect(int x, int y , int width ,int height)
โดยที่
x1 , y1 เป็ นจุดพิกดั มุมบนซ้ายของรูปสี่เหลี่ยม
width เป็ นความกว้างของรูปสี่เหลี่ยม
height เป็ นความยาวของรูปสี่เหลี่ยม
เช่น g.drawRect(10,10,20,40);
เมธอดที่ใช้วาดรูปสี่เหลี่ยมโปร่งขอบมน
ใช้เมธอด drawRoundRect() ของอ็อบเจกต์ของคลาส Graphics
รูปแบบ
drawRoundRect(int x, int y , int width ,int height, int acrwidth ,
int arc height )
โดยที่
x1 , y1 เป็ นจุดพิกด
ั มุมบนซ้ายของรูปสี่เหลี่ยม
width เป็ นความกว้างของรูปสี่เหลี่ยม
height
เป็ นความยาวของรูปสี่เหลี่ยม
arcwidth เป็ นความกว้างของส่วนโค้งที่เป็ นมุมของสี่เหลี่ยม
archeight เป็ นความสูงของส่วนโค้งที่เป็ นมุมของสี่เหลี่ยม
เมธอดที่ใช้วาดรูปสี่เหลี่ยมทึบ
ใช้เมธอด fillRect() ของอ็อบเจกต์ของคลาส Graphics
รู ปแบบ
fillRect(int x, int y , int width ,int height)
โดยที่
x1 , y1 เป็ นจุดพิกดั มุมบนซ้ายของรู ปสี่ เหลี่ยม
width เป็ นความกว้างของรู ปสี่ เหลี่ยม
height เป็ นความยาวของรู ปสี่ เหลี่ยม
เช่น g.fillRect(10,10,20,40);
เมธอดที่ใช้วาดรูปสี่เหลี่ยมทึบขอบมน
ใช้เมธอด fillRoundRect() ของอ็อบเจกต์ของคลาส Graphics
รูปแบบ
fillRoundRect(int x, int y , int width ,int height ,
int width , int height)
โดยที่
x1 , y1 เป็ นจุดพิกดั มุมบนซ้ายของรูปสี่เหลี่ยม
width
เป็ นความกว้างของรูปสี่เหลี่ยม
height เป็ นความยาวของรูปสี่เหลี่ยม
arcwidth เป็ นความกว้างของส่วนโค้งที่เป็ นมุมของสี่เหลี่ยม
archeight เป็ นความสูงของส่วนโค้งที่เป็ นมุมของสี่เหลี่ยม
ตัวอย่าง โปรแกรมวาดรูปสี่เหลี่ยมบนหน้าจอ
ตัวอย่าง โปรแกรมวาดรูปสี่เหลี่ยมบนหน้าจอ (ต่อ)
ผลการรันโปรแกรม
เมธอดที่ใช้วาดรูปวงกลมหรือวงรี
ใช้เมธอด drawArc() ของอ็อบเจกต์ของคลาส Graphics
รูปแบบ
drawArc(int x , int y , int width , int height ,
int startAngle , int arcAngle)
โดยที่
x , y เป็ นจุดพิกดั ที่มุมบนซ้ายของรูปวงกลมหรือวงรี
width เป็ นความกว้างตามแนวแกน x
height ความกว้างตามแนวแกน y
startAngle เป็ นมุมเริ่มต้น
arcAngle จานวนองศา (นับจากมุมเริ่มต้น)
เมธอดทีใ่ ช้ วาดรู ปวงกลมหรือวงรีทบึ
ใช้เมธอด fillArc() ของอ็อบเจกต์ของคลาส Graphics
รูปแบบ
fillArc(int x , int y , int width , int height ,
int startAngle , int arcAngle)
โดยที่
x , y เป็ นจุดพิกดั ที่มุมบนซ้ายของรูปวงกลมหรือวงรี
width เป็ นความกว้างตามแนวแกน x
height ความกว้างตามแนวแกน y
startAngle เป็ นมุมเริ่มต้น
arcAngle จานวนองศา (นับจากมุมเริ่มต้น)
ตัวอย่าง โปรแกรมวาดรูปวงกลม
ตัวอย่าง โปรแกรมวาดรูปวงกลม (ต่อ)
ผลการรันโปรแกรม
เมธอดที่ใช้พิมพ์ขอ้ ความ
ใช้เมธอด drawString() ของอ็อบเจกต์ของคลาส Graphics
รูปแบบ
drawString(String str, int x , int y ,int anchor)
ตัวอย่าง โปรแกรมพิมพ์ขอ้ ความ
ตัวอย่าง โปรแกรมพิมพ์ขอ้ ความ (ต่อ)
ผลการรันโปรแกรม