Submit Search
Java Programming [10/12]: Java Applet
6 likes
3,172 views
IMC Institute
เอกสารแนะนำการเขียนโปรแกรมภาษาจาวา
Technology
Read more
1 of 39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
More Related Content
What's hot
(18)
PDF
Java AWT
Thanachart Numnonda
PDF
Java Programming: คลาสอินพุตและเอาต์พุต
Thanachart Numnonda
PPT
Java Programming [12/12] : Thread
IMC Institute
PDF
Java Programming: โครงสร้างควบคุม
Thanachart Numnonda
PDF
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
KEk YourJust'one
PDF
รายงาน คอม
NooLuck
PPT
Java Programming [4/12] : Object Oriented Concept
IMC Institute
PDF
พื้นฐานภาษาจาวา
Saranporn Rungrueang
PPT
องค์ประกอบของวิชวลเบสิก
pisan kiatudomsak
PDF
Java Programming: อะเรย์และคอลเล็กชั่น
Thanachart Numnonda
PDF
Java Programming: การจัดการกับข้อผิดพลาด
Thanachart Numnonda
PDF
ส่วนประกอบวิชวลเบสิก
Nuunamnoy Singkham
PPT
PHP Tutorial (introduction)
Tinnakorn Puttha
PDF
Lesson5
โทโม๊ะจัง นานะ
DOC
Vb6 3 ActiveX Control พื้นฐาน
ณัฐพล บัวพันธ์
PPT
Java Programming [9/12]: Exception Handling
IMC Institute
DOC
66
Parkae' Kusuma
PDF
รายงาน window
NooLuck
Java AWT
Thanachart Numnonda
Java Programming: คลาสอินพุตและเอาต์พุต
Thanachart Numnonda
Java Programming [12/12] : Thread
IMC Institute
Java Programming: โครงสร้างควบคุม
Thanachart Numnonda
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
KEk YourJust'one
รายงาน คอม
NooLuck
Java Programming [4/12] : Object Oriented Concept
IMC Institute
พื้นฐานภาษาจาวา
Saranporn Rungrueang
องค์ประกอบของวิชวลเบสิก
pisan kiatudomsak
Java Programming: อะเรย์และคอลเล็กชั่น
Thanachart Numnonda
Java Programming: การจัดการกับข้อผิดพลาด
Thanachart Numnonda
ส่วนประกอบวิชวลเบสิก
Nuunamnoy Singkham
PHP Tutorial (introduction)
Tinnakorn Puttha
Lesson5
โทโม๊ะจัง นานะ
Vb6 3 ActiveX Control พื้นฐาน
ณัฐพล บัวพันธ์
Java Programming [9/12]: Exception Handling
IMC Institute
66
Parkae' Kusuma
รายงาน window
NooLuck
Similar to Java Programming [10/12]: Java Applet
(20)
PPTX
Lab Computer Programming 1
Saranyu Srisrontong
PDF
662327 08-2-53 [โหมดความเข้ากันได้]
Deity Toon
PDF
Java2
Natthaphon Moraphen
PPTX
Computer Programming 1
Saranyu Srisrontong
PPTX
พื้นฐานการสร้าง Java
Janë Janejira
PPTX
โปรแกรม Net beans
BoOm mm
PDF
บทที่ 3 พื้นฐานภาษา Java
Itslvle Parin
PDF
บทที่ 3 พื้นฐานภาษา Java
Itslvle Parin
PDF
Java 7&12 6 2
Mook Sasivimon
PDF
พื้นฐานโปรแกรมภาษาจาวา
Thanachart Numnonda
PDF
การเขียนโปรแกรมโดยใช้ Netbeans
Wasin Kunnaphan
PDF
Java Web Programming [Servlet/JSP] Using GlassFish and NetBeans
IMC Institute
PDF
Java Web programming Using NetBeans
Software Park Thailand
PDF
Java-Chapter 14 Creating Graphics with DWindow
Wongyos Keardsri
PDF
Introduction to Java Programming
Bhusit Net
PPTX
การเขียนโปรแกรมด้วย Net beans
Apisit Song
PDF
Java Web Programming Using NetBeans 6.5
Thanachart Numnonda
PPTX
ภาษาจาวา 1
khwanchanokPhraeampha
PDF
ใบความรู้ที่ 4 การเขียนโปรแกรมด้วย visual basic 2010
Nattapon
PDF
Java-Chapter 08 Methods
Wongyos Keardsri
Lab Computer Programming 1
Saranyu Srisrontong
662327 08-2-53 [โหมดความเข้ากันได้]
Deity Toon
Java2
Natthaphon Moraphen
Computer Programming 1
Saranyu Srisrontong
พื้นฐานการสร้าง Java
Janë Janejira
โปรแกรม Net beans
BoOm mm
บทที่ 3 พื้นฐานภาษา Java
Itslvle Parin
บทที่ 3 พื้นฐานภาษา Java
Itslvle Parin
Java 7&12 6 2
Mook Sasivimon
พื้นฐานโปรแกรมภาษาจาวา
Thanachart Numnonda
การเขียนโปรแกรมโดยใช้ Netbeans
Wasin Kunnaphan
Java Web Programming [Servlet/JSP] Using GlassFish and NetBeans
IMC Institute
Java Web programming Using NetBeans
Software Park Thailand
Java-Chapter 14 Creating Graphics with DWindow
Wongyos Keardsri
Introduction to Java Programming
Bhusit Net
การเขียนโปรแกรมด้วย Net beans
Apisit Song
Java Web Programming Using NetBeans 6.5
Thanachart Numnonda
ภาษาจาวา 1
khwanchanokPhraeampha
ใบความรู้ที่ 4 การเขียนโปรแกรมด้วย visual basic 2010
Nattapon
Java-Chapter 08 Methods
Wongyos Keardsri
Ad
More from IMC Institute
(20)
PDF
นิตยสาร Digital Trends ฉบับที่ 14
IMC Institute
PDF
Digital trends Vol 4 No. 13 Sep-Dec 2019
IMC Institute
PDF
บทความ The evolution of AI
IMC Institute
PDF
IT Trends eMagazine Vol 4. No.12
IMC Institute
PDF
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
IMC Institute
PDF
IT Trends 2019: Putting Digital Transformation to Work
IMC Institute
PDF
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
IMC Institute
PDF
IT Trends eMagazine Vol 4. No.11
IMC Institute
PDF
แนวทางการทำ Digital transformation
IMC Institute
PDF
บทความ The New Silicon Valley
IMC Institute
PDF
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
IMC Institute
PDF
แนวทางการทำ Digital transformation
IMC Institute
PDF
The Power of Big Data for a new economy (Sample)
IMC Institute
PDF
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
IMC Institute
PDF
IT Trends eMagazine Vol 3. No.9
IMC Institute
PDF
Thailand software & software market survey 2016
IMC Institute
PPTX
Developing Business Blockchain Applications on Hyperledger
IMC Institute
PDF
Digital transformation @thanachart.org
IMC Institute
PDF
บทความ Big Data จากบล็อก thanachart.org
IMC Institute
PDF
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
IMC Institute
นิตยสาร Digital Trends ฉบับที่ 14
IMC Institute
Digital trends Vol 4 No. 13 Sep-Dec 2019
IMC Institute
บทความ The evolution of AI
IMC Institute
IT Trends eMagazine Vol 4. No.12
IMC Institute
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
IMC Institute
IT Trends 2019: Putting Digital Transformation to Work
IMC Institute
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
IMC Institute
IT Trends eMagazine Vol 4. No.11
IMC Institute
แนวทางการทำ Digital transformation
IMC Institute
บทความ The New Silicon Valley
IMC Institute
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
IMC Institute
แนวทางการทำ Digital transformation
IMC Institute
The Power of Big Data for a new economy (Sample)
IMC Institute
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
IMC Institute
IT Trends eMagazine Vol 3. No.9
IMC Institute
Thailand software & software market survey 2016
IMC Institute
Developing Business Blockchain Applications on Hyperledger
IMC Institute
Digital transformation @thanachart.org
IMC Institute
บทความ Big Data จากบล็อก thanachart.org
IMC Institute
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
IMC Institute
Ad
Java Programming [10/12]: Java Applet
1.
บทที่ 10 โปรแกรมจาวาแอปเพล็ต
(Java Applet) อ.ธนิศ า เครือ ไวศยวรรณ คณะเทคโนโลยีส ารสนเทศ สถาบัน เทคโนโลยีพ ระจอมเกล้า เจ้า คุณ ทหารลาดกระบัง
2.
วัต ถุป ระสงค์
แนะนำา การเขีย นโปรแกรมจาวาแอปเพล็ต แนะนำา ตัว อย่า งไฟล์ HTML ทีม ี tag <APPLET> ่ เพือ เรีย กใช้โ ปรแกรมจาวา แอปเพล็ต ่ แนะนำา คลาส Applet และเมธอดทีส ำา คัญ ของคลาส ่ แนะนำา คลาส Graphics และเมธอดสำา คัญ ๆที่ เกีย วข้อ งกับ คลาส ่ แนะนำา วิธ ีก ารเขีย นโปรแกรมจาวาแอปเพล็ต เพือ ่ จัด การกับ ไฟล์ภ าพและไฟล์เ สีย ง แนะนำา การเขีย นโปรแกรมจาวาแอปเพล็ต ทีม ส ว น ่ ี ่ ติด ต่อ กับ ผู้ใ ช้
3.
โปรแกรมจาวาแอปเพล็ต โปรแกรมจาวาแอปเพล็ต
(Applet) คือ โปรแกรม ภาษาจาวาทีส ามารถทำา งานภายใต้โ ปรแกรมเว็บ ่ บราวเซอร์ (Web Browser) ทีม ี JVM อยู่ ่ โปรแกรมจาวาแอปเพล็ต จะประกอบด้ว ยไฟล์ โปรแกรมสองไฟล์ค ือ • โปรแกรมภาษาจาวา (.java) • โปรแกรมภาษา HTML (.html) โปรแกรมจาวาแอปเพล็ต จะแตกต่า งจาก โปรแกรมจาวาประยุก ต์ต รงทีไ ม่ม เ มธอดทีช ื่อ ่ ี ่ main() และจะไม่ส ามารถทำา งานตามลำา พัง ได้ แต่ จะต้อ งเรีย กใช้โ ดยผ่า นโปรแกรมภาษา HTML
4.
ตัว อย่า งโปรแกรมจาวาแอปเพล็ต import
java.awt.*; import java.awt.*; import java.applet.*; import java.applet.*; public class HelloWorldApplet extends Applet { public class HelloWorldApplet extends Applet { public void paint(Graphics g) { public void paint(Graphics g) { g.drawString("Hello World",20,20); g.drawString("Hello World",20,20); }} }}
5.
โปรแกรมภาษา HTML โปรแกรมภาษา
HTML จะมี tag ทีช อ ่ ื่ <APPLET> เพือ ใช้ใ นการระบุโ ปรแกรมไบท์โ ค้ด ่ ทีไ ด้ม าจากการคอมไพล์โ ปรแกรมจาวาแอปเพล็ต ่ ซึ่ง ภายใน tag นีจ ะมีค ุณ ลัก ษณะ (attribute) ้ ต่า งๆคือ ชื่อ ของโปรแกรมไบท์โ ค้ด (.class) และ ขนาดของโปรแกรมแอปเพล็ต ทีต ้อ งการจะแสดง ่ บนเว็บ เพจ
6.
ตัว อย่า งโปรแกรมภาษา
HTML <HTML> <HTML> <HEAD> <HEAD> <TITLE>HelloWorld Example</TITLE> <TITLE>HelloWorld Example</TITLE> </HEAD> </HEAD> <BODY> <BODY> <APPLET CODE="HelloWorldApplet.class" <APPLET CODE="HelloWorldApplet.class" WIDTH="300" HEIGHT="300"> WIDTH="300" HEIGHT="300"> </APPLET> </APPLET> </BODY> </BODY> </HTML> </HTML>
7.
ขั้น ตอนการพัฒ นาโปรแกรมจาวา
แอปเพล็ต เขีย นโปรแกรมซอร์ด โค้ด (HelloWorldApplet.java) และโปรแกรม เว็บ เพจ (HelloWorld.html) โดยใช้ โปรแกรมอิด เ ตอร์ใ ดๆ ี คอมไพล์โ ปรแกรม HelloWorldApplet.java โดยใช้ คอมไพเลอร์ด ง นี้ ั javac HelloWorldApplet.java ตัว อย่า งนีจ ะได้โ ปรแกรมไบท์โ ค้ด ที่ช อ ้ ื่ HelloWorldApplet.class ใช้โ ปรแกรมเว็บ บราวเซอร์ใ ดๆเช่น Internet Explorer หรือ Netscape เปิด โปรแกรมเว็บ เพจที่ ชื่อ HelloWorld.html ซึ่ง จะเรีย กโปรแกรมไบท์โ ค้ด ทีช ื่อ HelloWorldApplet.class โดยอัต โนมัต ิ ่
8.
ตัว อย่า งการรัน
โปรแกรมบนเว็บ บราวเซอร์
9.
ขั้น ตอนการทำา งาน
การรัน โปรแกรมจาวาแอปเพล็ต ภายในโปรแกรม เว็บ บราวเซอร์ จะมีข ั้น ตอนการทำา งานดัง นี้ • โปรแกรมเว็บ บราวเซอร์จ ะโหลด URL ตามตำา แหน่ง ที่ ระบุ • โปรแกรมเว็บ บราวเซอร์จ ะโหลดไฟล์ HTML ที่ร ะบุแ ละ กระทำา คำา สั่ง tag ต่า งๆที่ร ะบุใ นไฟล์ HTML • โปรแกรมเว็บ บราวเซอร์จ ะโหลดโปรแกรมโปรแก รมไบท์โ ค้ด ที่เ ป็น โปรแกรม จาวาแอปเพล็ต ที่ร ะบุใ น tag ที่ช ื่อ APPLET ตาม URL ที่ร ะบุ • โปรแกรมเว็บ บราวเซอร์จ ะรัน โปรแกรมจาวาแอปเพล็ต
10.
รูป แสดงขั้น ตอนการทำา
งาน
11.
ความปลอดภัย ในการใช้โ ปรแกรม
จาวาแอปเพล็ต โปรแกรมเว็บ บราวเซอร์ท ร ัน โปรแกรมจาวาแอป ี่ เพล็ต จะต้อ งมี JVM อยูแ ละเนือ งจากโปรแกรมเว็บ ่ ่ บราวเซอร์ส ามารถโหลดโปรแกรมจาวาแอปเพล็ต มาจากเครื่อ งคอมพิว เตอร์แ ม่ข ่า ยอื่น ๆได้ ดัง นัน ้ ภาษาจาวาจึง ได้ก ำา หนดระบบความปลอดภัย ใน การรัน โปรแกรมจาวาแอปเพล็ต เพือ ป้อ งกัน ไม่ใ ห้ ่ โปรแกรมจาวาแอปเพล็ต ทำา งานต่า งๆดัง นี้ • อ่า นหรือ เขีย นไฟล์อ ื่น ๆที่อ ยู่ใ นเครื่อ งที่ร ัน โปรแกรมอยู่ • เรีย กใช้โ ปรแกรมอื่น ๆที่อ ยู่ใ นเครื่อ งที่ร ัน โปรแกรมอยู่ • ติด ต่อ กับ เครื่อ งแม่ข ่า ยอื่น • เรีย กใช้ native method (คำา สั่ง เรีย กเมธอดใน โปรแกรมภาษาอื่น ) กรณีท โ ปรแกรมภาษาจาวาแอปเพล็ต พยายาม ี่
12.
Tag ที่ช ื่อ
<APPLET> Tag ทีช ื่อ APPLET มีร ูป แบบดัง นี้ ่ <APPLET code = filename.class width = widthPixels height = heigthPixels [archive = archivefile] [codeapplet = url] [vspace = vMargin] [hspace = hMargin] [align = alignment] [alt = text]> [<PARAM name = attrl value = val1> <PARAM name = attrN value = valN>] </APPLET>
13.
Tag ที่ช ื่อ
<APPLET> ทีช ื่อ <APPLET> จะมีค ุณ ลัก ษณะที่ต อ งระบุ tag ่ ้ สามอย่า งคือ • code เพื่อ ระบุช ื่อ โปรแกรมไบท์โ ค้ด ของโปรแกรมจา วาแอปเพล็ต • width เพื่อ ระบุค วามกว้า งของโปรแกรมแอปเพล็ต ที่ ต้อ งแสดงบนเว็บ เพจ • height เพื่อ ระบุค วามสูง ของโปรแกรมแอปเพล็ต ที่ ต้อ งการแสดงบนเว็บ เพจ นอกจากนีย ัง มีค ุณ ลัก ษณะอื่น ๆทีเ ป็น เงื่อ นไขเพิม ้ ่ ่ เติม ดัง นี้ • ALIGN เพื่อ กำา หนดการวางตำา แหน่ง ของโปรแกรมจา วาแอปเพล็ต • CODEBASE เพื่อ ระบุต ำา แหน่ง ของ URL ที่เ ก็บ โปรแก รมไบท์โ ค้ด ของโปรแกรมจาวาแอปเพล็ต
14.
การส่ง พารามิเ ตอร์
คุณ ลัก ษณะทีช ื่อ PARAM ่ จะใช้ใ นการส่ง ผ่า น พารามิเ ตอร์ไ ปยัง โปรแกรม จาวาแอปเพล็ต ได้ รูป แบบของคุณ ลัก ษณะทีช ื่อ PARAM ่ <PARAM name = attr1 VALUE = val1> ตัว อย่า ง <PARAM name = speed VALUE = "25"> โปรแกรมจาวาแอปเพล็ต สามารถเรีย กดูค ่า พารามิเ ตอร์ ทีจ ะส่ง ผ่า นมาจากโปรแกรม .html ่ โดยใช้ค ุณ ลัก ษณะใน tag ทีช ื่อ APPLET นีไ ด้ โดย ่ ้ ใช้เ มธอดทีช ื่อ getParameter() ่
15.
การส่ง พารามิเ ตอร์
รูป แบบของ เมธอด getParameter() String getParameter(String paramName) เมธอดนี้จ ะส่ง ค่า เป็น ชนิด ข้อ มูล แบบ String คืน มา โดยจะเป็น ค่า ทีอ ยูใ น <PARAM> ทีช ื่อ VALUE ค่า ทีส ่ง ่ ่ ่ ่ กลับ มาจะเป็น case-sensitive แต่ช ื่อ พารามิเ ตอร์ จะไม่ใ ช่ case-sensitive ตัว อย่า ง getParameter(“SPEED”) จะให้ค ่า กลับ มาเป็น “25” ตามที่ร ะบุไ ว้ใ นตัว อย่า งของ <PARAM> ข้า งต้น กรณีท ไ ม่พ บพารามิเ ตอร์ต ามชื่อ ทีส ่ง ไปใน ี่ ่ getParameter()เราจะได้ค ่า ทีก ลับ มาเป็น null ่
16.
คลาส
Applet เป็น คลาสทีก ำา หนดไว้ใ น Java API ทีอ ยู่ Applet ่ ่ ในแพคเก็จ java.applet โปรแกรมจาวาแอปเพล็ต ทุก โปรแกรมจะต้อ ง สืบ ทอดมาจากคลาส Applet โดยใช้ค ำา สั่ง extends Applet คลาส Applet จัด เป็น คลาสประเภท Container ที่ สืบ ทอดมาจากคลาสทีช ื่อ Panel โดยมีก ารจัด วาง ่ ผัง เป็น แบบ FlowLayout คลาส Appletจึง สามารถทีจ ะใส่อ อปเจ็ค ทีเ ป็น ส่ว น ่ ่ ประกอบกราฟฟิก ของแพคเก็จ AWT ได้ ในกรณีท ต ้อ งการใช้ส ่ว นประกอบกราฟฟิก ของ ี่
17.
เมธอดที่ส ำา คัญ
ของคลาส Applet โปรแกรมจาวาแอปเพล็ต จะไม่ม เ มธอดทีช อ main() ี ่ ื่ เมธอดที่ส ำา คัญ ของคลาส Applet มีด ัง นี้ • init() • start() • stop() • destroy() • paint()
18.
รายละเอีย ดของเมธอด
init() • เมธอดนี้จ ะถูก เรีย กเพีย งครั้ง เดีย วเมื่อ มีก ารโหลด โปรแกรมจาวาแอปเพล็ต หรือ เมื่อ มีก ารรีโ หลด (reload) โปรแกรมเว็บ บราวเซอร์ start() • เมธอดนี้จ ะถูก เรีย กหลัง จากทำา คำา สั่ง ในเมธอดที่ช ื่อ init() และถูก เรีย กใช้ท ุก ครั้ง ที่ผ ู้ใ ช้ก ลับ มายัง เว็บ เพจที่ มีโ ปรแกรมจาวาแอปเพล็ต หน้า นี้อ ยู่ หรือ ทุก ครั้ง ที่ม ีก าร แสดงเฟรมที่ม ีโ ปรแกรมจาวาแอปเพล็ต หน้า นี้อ ยู่ stop() • เมธอดนี้จ ะถูก เรีย กใช้เ มื่อ ผู้ใ ช้ย ้า ยไปยัง เว็บ เพจหน้า อื่น หรือ เมื่อ มีก ารยกเลิก การแสดงเฟรมที่ม ีโ ปรแกรมจา วาแอปเพล็ต หน้า นี้อ ยู่ destroy() • เมธอดนี้จ ะถูก เรีย กครั้ง เดีย วเมื่อ มีก ารปิด เว็บ บราวเซอร์
19.
เมธอด
paint() เป็น เมธอดทีม ค ำา สัง ทีเ กีย วข้อ งกับ การวาดรูป ่ ี ่ ่ ่ กราฟฟิก ต่า งๆ เมธอด paint() มีร ูป แบบดัง นี้ public void paint(Graphics g) { [statements] } คำา สั่ง ในเมธอด paint() จะถูก เรีย กใช้ง านหลัง จาก การทำา คำา สัง ในเมธอด start() ทำา ให้ส ามารถทีจ ะ ่ ่ เขีย นรูป ทรงหรือ ข้อ ความทีเ ป็น กราฟฟิก ได้ ่ เมธอด paint()จะถูก เรีย กซำ้า ทุก ครั้ง ทีเ ว็บ ่ บราวเซอร์ม ก ารเปลี่ย นแปลงเช่น การปรับ ขนาด ี
20.
ขั้น ตอนการทำา งานของเมธอด
21.
คลาส
Graphics การสร้า งภาพกราฟฟิก ในโปรแกรมจาวาแอปเพล็ ตจะทำา ได้โ ดยการ override เมธอด paint()แล้ว เขีย นคำา สั่ง ในการวาดรูป ทรงกราฟฟิก ต่า งๆใน เมธอด เมธอดในการวาดรูป ทรงต่า งๆ • drawLine() • drawRect(), fillRect() • drawRoundRect(), fillRoundRect() • drawOval(), fillOval() • drawArc(), fillArc() • drawPolygon(), fillPolygon() • drawPolyline() • drawString() เมธอดทีใ ช้ใ นการจัด การคุณ ลัก ษณะของ ่ กราฟฟิก
22.
ตัว อย่า งโปรแกรม import
java.awt.*; import java.awt.*; import java.applet.*; import java.applet.*; public class GUIApplet extends Applet { public class GUIApplet extends Applet { public void paint(Graphics g) { public void paint(Graphics g) { g.drawRect(5,5,15,15); g.drawRect(5,5,15,15); g.fillOval(50,50,20,20); g.fillOval(50,50,20,20); g.drawArc(75,25,40,40,0,135); g.drawArc(75,25,40,40,0,135); g.fillArc(80,80,30,30,90,270); g.fillArc(80,80,30,30,90,270); g.drawString("Hello",5,90); g.drawString("Hello",5,90); }} }} ผลลัพ ธ์ท ไ ด้จ ากการรัน โปรแกรม ี่
23.
โปรแกรม
AWTThread โปรแกรม GUI จะมีโ ปรแกรมแบบเธรดทีเ รีย กว่า ่ AWTThread ทีเ ป็น โปรแกรมทีป ระมวลผลพร้อ มกัน ่ ่ ซึ่ง จะทำา หน้า ทีค อยตรวจสอบว่า จะต้อ งมีก ารเรีย ก ่ ใช้เ มธอด paint() เพือ วาดรูป ทรงกราฟฟิก ตามคำา ่ สั่ง ทีร ะบุใ ห้แ สดงบนออปเจ็ค ประเภท Container ่ (เช่น Applet) ใหม่ห รือ ไม่ โปรแกรม AWTThread จะเรีย กใช้เ มธอด paint() ใหม่ ในกรณีต ่า งๆอาทิเ ช่น • เมื่อ มีก ารโหลดออปเจ็ค ของคลาสประเภท Container เพื่อ แสดงผลครั้ง แรก • เมื่อ โปรแกรมเปลี่ย นจากไอคอนกลับ มาเป็น โปรแกรมที่ แสดงผลตามหน้า จอปกติ • เมื่อ โปรแกรมเว็บ บราวเซอร์ กลับ มาแสดงเว็บ เพจ
24.
เมธอด
repaint() โปรแกรม AWTThread จะเรีย กใช้เ มธอด repaint() เมือ ต้อ งการวาดรูป ทรงกราฟฟิก ใหม่ ซึง เมธอด ่ ่ repaint() จะเรีย กใช้เ มธอด update() อีก ต่อ หนึง ่ โดยทัว ไปเมธอด update() ่ จะมีค ำา สั่ง ในการลบภาพ กราฟฟิก เดิม และเรีย กใช้เ มธอดทีช ื่อ paint() โดย ่ มีร ูป แบบดัง นี้ public void update(Graphics g) { g.clearRect(0,0,width,height); paint(g); }
25.
เมธอด
update() เราสามารถทีจ ะ ่ override เมธอดทีช ื่อ update() ่ ใหม่เ พื่อ ไม่ใ ห้ม ก ารลบภาพกราฟฟิก เดิม ได้โ ดย ี กำา หนดรูป แบบคำา สั่ง ดัง นี้ public void update(Graphics g){ paint(g); }
26.
การเรีย กใช้เ มธอดต่า
งๆของ โปรแกรม AWTThread
27.
คำา สัง ด้า
น Multimedia ่ โปรแกรมจาวาแอปเพล็ต สามารถทีจ ะแสดง ่ รูป ภาพทีอ ยูฟ อร์แ มตต่า งๆเช่น GIF หรือ JPEG ได้ ่ ่ และสามารถทีจ ะเล่น ไฟล์เ สีย งได้โ ดยมีค ลาสที่ ่ สำา คัญ สองคลาสคือ • คลาส Image ซึ่ง เป็น คลาสที่ใ ช้ใ นการสร้า งออปเจ็ค เพื่อ จัด การกับ ไฟล์ร ูป ภาพ • คลาส AudioClip ซึ่ง เป็น คลาสที่ใ ช้ใ นการสร้า งออปเจ็ค เพื่อ จัด การกับ ไฟล์เ สีย ง
28.
คลาส
Image โปรแกรมจาวาแอปเพล็ต สามารถสร้า งออปเจ็ค ของคลาส Image ได้โ ดยเรีย กใช้เ มธอด getImage() ทีอ ยูใ นคลาสทีช อ Applet ซึ่ง มีร ูป แบบดัง นี้ ่ ่ ่ ื่ • Image getImage(URL u) • Image getImage(URL u,String name) URL เป็น คลาสทีใ ช้ส ร้า งออปเจ็ค เพือ ระบุต ำา แหน่ง ่ ่ URL ของรูป ภาพอาทิเ ช่น • URL u = new URL(“http://java.sun.com”); กรณีท ต ำา แหน่ง ของไฟล์ร ูป ภาพอยูใ น ี่ ่ URL เดีย ว กับ ตำา แหน่ง ของโปรแกรมเว็บ เพจ เราสามารถ เรีย กใช้เ มธอดทีช ื่อ getDocumentBase()เพือ ระบุ URL ่ ่ ดัง กล่า ว อาทิเ ช่น • Image cat = getImage(getDocumentBase(),“cat.gif”);
29.
คลาส
Image ส่ว นในกรณีท ต ำา แหน่ง ของไฟล์ร ูป ภาพมี ี่ URL ตรงกับ ตำา แหน่ง ของโปรแกรมไบท์โ ค้ด ของ โปรแกรมจาวาแอปเพล็ต เราสามารถเรีย กใช้ เมธอดทีช ื่อ getCodeBase() เพือ ระบุ URL ดัง กล่า ว ่ ่ อาทิเ ช่น • Image cat = getImage(getCodeBase(),“cat.gif”); เมธอด drawImage()ในคลาส Graphics ใช้ใ นการ แสดงรูป ภาพที่ต ำา แหน่ง x, y ดัง นี้ • drawImage(Image im,int x,int y,ImageObserver ob); เป็น อิน เตอร์เ ฟสทีใ ช้ร ะบุเ มือ มีก าร ImageObserver ่ ่ เปลี่ย นสถานะของรูป ภาพ
30.
ตัว อย่า งโปรแกรม import
java.awt.*; import java.awt.*; import java.applet.*; import java.applet.*; public class ImageDemo extends Applet{ public class ImageDemo extends Applet{ Image im; Image im; public void init() { public void init() { im = getImage(getDocumentBase(), "duke.gif"); im = getImage(getDocumentBase(), "duke.gif"); }} public void paint(Graphics g){ public void paint(Graphics g){ g.drawImage(im, 20, 20, this); g.drawImage(im, 20, 20, this); }} }}
31.
คลาส
AudioClip โปรแกรมจาวาแอปเพล็ต สามารถสร้า งออปเจ็ค ของคลาส AudioClip ได้โ ดยใช้เ มธอด getAudioClip()ซึ่ง มีร ูป แบบดัง นี้ • AudioClip getAudioClip(URL u) • AudioClip getAudioClip(URL u,String name) คลาส AudioClip มีเ มธอดทีเ กี่ย วข้อ งกับ การเล่น ่ เสีย งดัง นี้ • play() • loop() • stop() นอกจากนีค ลาส Applet ้ ยัง มีเ มธอด play() ที่ สนับ สนุน การเล่น ไฟล์เ สีย ง โดยไม่จ ำา เป็น ต้อ ง สร้า งออปเจ็ค ของคลาส AudioClip โดยมีร ูป แบบ ดัง นี้
32.
ตัว อย่า งโปรแกรม import
java.awt.*; import java.awt.*; import java.applet.*; import java.applet.*; public class MusicDemo extends Applet {{ public class MusicDemo extends Applet AudioClip sound; AudioClip sound; public void init() {{ public void init() sound == getAudioClip(getDocumentBase(), sound getAudioClip(getDocumentBase(), "spacemusic.au"); "spacemusic.au"); }} public void paint(Graphics g){ public void paint(Graphics g){ sound.loop(); sound.loop(); }} public void stop() {{ public void stop() sound.stop(); sound.stop(); }} }}
33.
โปรแกรมจาวาแอปเพล็ต ที่โ ต้ต
อบ กับ ผู้ใ ช้ คลาส Appletเป็น คลาสประเภท Container และ สามารถทีจ ะรับ ฟัง เหตุก ารณ์ท างกราฟฟิก ต่า งๆได้ ่ อาทิเ ช่น • ActionListener • MouseListener • MouseMotionListener • KeyListListener • FocusListener
34.
ตัว อย่า งโปรแกรมจาวาแอปเพล็ต
ที่ มีส ่ว นติด ต่อ กับ ผู้ใ ช้ import java.awt.*; import java.awt.*; import java.awt.event.*; import java.awt.event.*; import java.applet.*; import java.applet.*; public class MusicGUI extends Applet implements public class MusicGUI extends Applet implements ActionListener { ActionListener { AudioClip sound; AudioClip sound; Button bn1, bn2; public void init() { Button bn1, bn2; public void init() { sound = getAudioClip(getDocumentBase(), sound = getAudioClip(getDocumentBase(), "spacemusic.au"); "spacemusic.au"); bn1 = new Button("PLAY"); bn1 = new Button("PLAY"); bn2 = new Button("STOP"); bn2 = new Button("STOP"); add(bn1); add(bn1); add(bn2); add(bn2);
35.
ตัว อย่า งโปรแกรมจาวาแอปเพล็ต
ที่ มีส ่ว นติด ต่อ กับ ผู้ใ ช้ bn1.addActionListener(this); bn1.addActionListener(this); bn2.addActionListener(this); bn2.addActionListener(this); bn1.setEnabled(true); bn1.setEnabled(true); bn2.setEnabled(false); bn2.setEnabled(false); }} public void stop() { public void stop() { sound.stop(); sound.stop(); }} public void actionPerformed(ActionEvent ev) { public void actionPerformed(ActionEvent ev) { String cmd = ev.getActionCommand(); String cmd = ev.getActionCommand();
36.
ตัว อย่า งโปรแกรมจาวาแอปเพล็ต
ที่ มีส ่ว นติด ต่อ กับ ผู้ใ ช้ if (cmd.equals("PLAY")) { if (cmd.equals("PLAY")) { sound.loop(); sound.loop(); bn2.setEnabled(true); bn2.setEnabled(true); bn1.setEnabled(false); bn1.setEnabled(false); } else if (cmd.equals("STOP")) { } else if (cmd.equals("STOP")) { sound.stop(); sound.stop(); bn2.setEnabled(false); bn2.setEnabled(false); bn1.setEnabled(true); bn1.setEnabled(true); }} }} }}
37.
สรุป เนื้อ หาของบท
โปรแกรมจาวาแอปเพล็ต สามารถรัน ภายใต้เ ว็บ บราวเซอร์ไ ด้ โดยจะต้อ งระบุช ื่อ โปรแกรมไว้ ภายใน tag <APPLET> ในไฟล์ HTML โปรแกรมจาวาแอปเพล็ต ทุก โปรแกรมจะต้อ ง สืบ ทอดมาจากคลาส Applet โดยใช้ค ำา สัง extends ่ Applet และจะเริ่ม ต้น ทำา งานทีเ มธอด init() ่ คลาส Applet มีเ มธอดทีส ำา คัญ คือ เมธอด ่ init(),start(),stop(), destroy() และ paint() เมธอดของคลาส Graphics สามารถนำา ไปใช้ใ นการ วาดรูป กราฟฟิก ต่า งๆได้ เช่น drawLine(),drawPolyline(),drawRect() และ fillRect() เป็น ต้น
38.
สรุป เนื้อ หาของบท
เมธอดทีร ับ ่ argument เข้า มาเป็น ออปเจ็ค ของ คลาส Graphics คือ เมธอด paint() และ update() คลาส Image เป็น คลาสทีเ ก็บ ออปเจ็ค ของไฟล์ ่ รูป ภาพ คลาส AudioClip เป็น คลาสทีเ ก็บ ออปเจ็ค ของไฟล์ ่ เสีย ง Applet สามารถทีจ ะรับ ฟัง เหตุก ารณ์ต่า งๆได้ เช่น ่ ActionListener, MouseListener และ KeyListListener เป็น ต้น
39.
แบบฝึก หัด ข้อ
ที่ 1 • ทดลองเขีย นโปรแกรมจาวา แอปเพล็ต เพื่อ เป็น บอร์ด สำา หรับ การวาดรูป แบบ free hand ข้อ ที่ 2 • ทดลองปรับ ปรุง GUI ของโปรแกรมจำา ลองระบบ ธนาคารให้ส ามารถเรีย กใช้ง านผ่า น Web Browser ได้