-
intro
. to
Java
(FE
U.fa
a)
ในบทที่หน่ึงนี้เราจะมาดูการติดต้ังเคร่ืองมือท่ีใช
ในการพัฒนาโปรแกรมดวยภาษา Java ตัวอยางการเขียนโปรแกรมในรูปแบบของ
application และ การเขียนโปรแกรมในรูปแบบของ applet หลังจากจบบทนี้แลว
ผูอานจะไดทราบถึง
o การติดตั้งเคร่ืองมือท่ีใชในการพัฒนาโปรแกรมในภาษา Java o
ตัวอยางการเขียนโปรแกรมในรูปแบบของ application o
ตัวอยางการเขียนโปรแกรมในรูปแบบของ applet o ตัวอยางการเขียน HTML
ไฟลท่ีใชในการ execute applet o การเขียนโปรแกรม Java ดวย Crimson
Editor o Netbeans กับการเขียนโปรแกรม o ประวัติคราว ๆ ของภาษา
Java
1.1 ทําไมถึงเลือก Java เปนภาษาในการเขียน code Java
เปนภาษาที่นักพัฒนาโปรแกรมสามารถที่จะเขียน code เพียงคร้ังเดียว
แลวนาํไปใชไดกับเคร่ือง computer ชนิด (platform) ตาง ๆ ได โดยไมตอง
compile ใหม เชน ถาเราเขียนโปรแกรมบนเครื่อง pc เราสามารถที่จะนําเอา
code ท่ีได compile เรียบรอยแลวไปใช (execute1) ในเคร่ืองอ่ืน ๆ
ท่ีไมใช pc ได เชน apple, linux, unix, หรือ อื่น ๆ ท่ีมี JVM (Java
Virtual Machine) อยู Java
เปนภาษาที่ไดถูกพัฒนาขึ้นเพ่ือสนองตอการพัฒนาโปรแกรมในรูปแบบของการเขียนโปรแกรมท่ีเรียกวา
OOP หรือ Object-Oriented Programming
ซึ่งเปนภาษาที่ชวยใหการพัฒนาโปรแกรมมีความยืดหยุนสูง ผูเขียน หรือ
ผูพัฒนาสามารถที่จะสนองตอบความตองการของผูใช (user)
ไดมากกวาการพัฒนาในลักษณะของการเขียนโปรแกรมแบบเดิม (procedural
language programming) และท่ีสําคัญอีกอยางหนึ่งก็คือ Java
เปนภาษาที่ไมตองเสียคาใชจายใด ๆ เลย เราสามารถที่จะ download
โปรแกรมสําหรับการพัฒนาไดจากบริษัท Sun Micro System หรือท่ีอ่ืน ๆ
ท่ีทาง Sun ไดอนุญาตใหมีการ download ได 1.2
กอนทีเราจะเขียนโปรแกรมดวย Java เราตองมีอะไรบาง 1.
เชนเดียวกันกับการเขียนโปรแกรมในภาษาอื่น ๆ เราตองมี Text Editor
ท่ีใชสรางและเก็บ
source code 2. JDK (Java Development Kit) ซึ่งมีหลาย version
ลาสุดในขณะท่ีเขียนตําราเลมน้ี คือ J2SE
5.0 (jdk1_5_0) ซึ่ง download ไดท่ี
http://java.sun.com/j2se/1.5.0/download.jsp เราตองใช JDK ในการ
compile โปรแกรมท่ีเราไดเขียนข้ึน
3. Java VM หรือท่ีเรียกวา Java Virtual Machine
ซึ่งเปนตัวกลางที่เปลี่ยน code ท่ีไดจากการ
compile เปน code ท่ีสามารถ execute บนเคร่ืองตาง ๆ (code
ท่ีเคร่ืองนั้น ๆ รูจัก – machine code หรือท่ีชาว Java เรียกวา byte
code) โดยปกติ VM จะถูกติดตั้งพรอมกับ JDK
ถาเรามีอุปกรณท้ังหมดท่ีไดกลาวมาแลว
ข้ันตอนตอไปท่ีเราตองทําเพ่ือใหการพัฒนาโปรแกรมของเรา
เปนไปไดดวยความเรียบรอย (ไมมีอุปสรรคที่คาดไมถึง)
เราตองเตรียมความพรอมของเคร่ืองกอน
1 ในหนังสือเลมน้ีการนําเอาโปรแกรมที่ compile
แลวไปใชเราจะเรียกวาการ execute หรือ run ตามศัพทของภาษาอังกฤษ
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
2
1.3 เตรียมความพรอม (สําหรับ pc) 1. ติดตั้ง JDK 2.
กําหนดที่อยูของไฟลตาง ๆ (path) ท่ีจําเปนสําหรับการ compile
ภายในเครื่องเพ่ือใหการ
compile และ execute โปรแกรมเปนไปได – ถาเราไมกําหนด path
เคร่ืองของเราจะไมรูจักคําส่ังตาง ๆ ท่ี Java ใช
1.3.1 ติดตั้ง JDK เม่ือ download JDK มาแลวการติดตั้งก็ทําไดงาย
เนื่องจาก JDK เปนไฟลท่ีเราเรียกวา self-extracting file คือ
ไฟลท่ีจะติดตั้งโดยอัตโนมัติเม่ือเรา execute (doubling click หรือ
ดวยวิธีการอ่ืน ๆ เชน click บน icon ของ file แลวกด enter) สําหรับไฟล
j2se 5.0 นั้นมีขนาดประมาณ 44 MB ซึ่งเปนไฟลท่ีใหญพอสมควร
และใชเวลานานในการ download (ถา speed ในการ download ไมดีพอ)
ซึ่งเมื่อขยายออกจะมีขนาดประมาณ 170 MB
เพราะฉะนั้นเราตองเตรียมเน้ือท่ีไวใหเหมาะสมในการติดตั้ง JDK
ถาหากวาเนื้อท่ีในการจัดเก็บมีนอย เราก็ควรใช JDK version อ่ืน ๆ
ท่ีมีขนาดเล็กกวา หลังจากท่ีติดตัง้ J2se เรียบรอยแลว
ผูอานก็ควรท่ีจะติดตั้ง Java API (Application Programming Interface)
เพ่ือใหเปนการอางอิงถึงการใช class และ methods ตางๆ ท่ี Java
มีใหซึ่ง API นี้สามารถ download ไดท่ี
http://java.sun.com/j2se/1.5.0/download.jsp
เม่ือไดไฟลมาแลวก็ทําการแตกไฟล (upzip) ไวในท่ีๆ เขาหาไดงาย
และถาหากผูอานอยากที่จะดูวา code ของ Java หนาตาเปนยังไงก็สามารถ
unzip source code ท่ีมากับ J2se ได หลังจากท่ีไดติดตั้ง J2se
พรอมท้ังไฟลอ่ืนๆ แลวหนาตาของ directory ของ Java ก็จะมี folder ตางๆ
คลายๆ กับท่ีเห็นนี้
ภาพท่ี 1-1 Folder ท่ีอยูใต j2sdk1.5.0
หลังจากการติดตั้งไฟลท่ีเก่ียวของ 1.3.2 การกําหนด path
ถาการพัฒนาโปรแกรมเปนการพัฒนาบนเคร่ือง Windows 9x การกําหนด path
ก็สามารถที่จะทําไดดวยวิธีการตาง ๆ ดังนี้ 1. เปดไฟล autoexec.bat
แลวเพ่ิม path ท่ีไดติดตั้ง JDK ไว ซึ่งถาเราติดต้ัง J2SDK 1.5.0
ไวใน
drive c การกําหนด path ในไฟล autoexec.bat ก็ทําไดดังนี้
ใสคําส่ัง set path=c:\j2sdk1.5.0\bin
ในบรรทัดใหมถายังไมมีมีคําส่ัง set path อยูเลย แตถามีการใช คําส่ัง
set path อยูแลวก็ใหใส ; (semicolon) หลงัตัวสุดทายของ path แลวจึงใส
c:\j2sdk1.5.0\bin
2. หรือเราอาจกําหนด path ทุกคร้ังกอนการเขียนโปรแกรม
(ถาเราไมไดกําหนดในไฟล
autoexec.bat) โดยไปที่ Command Prompt
(หรือท่ีรูจักกันในคนรุนเกาวา dos window) และ set path บน Command
Prompt ดังท่ีเห็นในภาพ
bin – ท่ีเก็บ compiler และเครื่องมืออ่ืน ๆ demo –
เก็บตัวอยางการใชงาน Java docs – เก็บรายละเอียด API include – เก็บ
method พื้นฐานตาง ๆ ของ Java jre – เก็บไฟลตาง ๆ ที่เกี่ยวของกับการ
run โปรแกรม lib – เก็บไฟลท่ีใชในการทํางาน sample –
เก็บตัวอยางโปรแกรม src – เก็บ source code ของ Java
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
3
ภาพท่ี 1-2 การกําหนด path ของ Java
3. ทําการพัฒนาโปรแกรมใน directory ท่ีมี JDK อยู เชนเปลี่ยน drive
ไปท่ี c:\j2sdk1.5.0\bin
แลวเร่ิมทํางานใน directory นี้
ไฟลทุกตัวท่ีเก่ียวของกับการเขียนโปรแกรมจะตองเก็บไวท่ีนี่ – วิธีนี้
ไมแนะนํา เพราะจะทําให directory ของ java
เปรอะไปดวยไฟลท่ีเราเขียนข้ึนเอง
ถาเราใช Windows XP หรือ Windows 2000 การกําหนด path
ทําไดดวยข้ันตอนตอไปนี้ (Windows XP และ Windows 2000
ใชคําส่ังท่ีแตกตางกันนิดหนอย ตัวอยางท่ีทําใหดูนี้ เปนการกําหนด path
บนเครื่องท่ีใช Windows XP) 1. กดปุมขวาของ mouse บน icon My Computer
(หรือ ไปท่ีปุม start ท่ีมุมลางซายของจอแลว
เลือก My Computer) แลวเลอืก Properties
ภาพท่ี 1-3 การเขาหา My computer 2. กดปุม advanced บน System
Properties
ภาพท่ี 1-4 ปุม Advanced
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
4
3. กดปุม Environment Variables
ภาพท่ี 1-5 ปุม Environment Variables 4. ใน System Variables
เลือกขอความท่ีข้ึนตนดวยคําวา Path
ภาพท่ี 1-6 ท่ีอยูของตัวแปร Path
5. เม่ือกดปุม Edit ก็จะไดหนาจอดังท่ีเห็น
ภาพท่ี 1-7 การกําหนดคาใหกับ Path
6. เติม ; (semicolon) ถายังไมมี แลวจึงใส path ท่ีไดติดตั้ง J2SDK
ไว เสร็จแลวกดปุม OK
เพ่ือใหระบบบันทึกการเปลี่ยนแปลงที่ไดทําข้ึน หลังจากท่ีไดกําหนด
path ใหกับเคร่ืองท่ีเราจะใชในการเขียนโปรแกรมแลว
ข้ันตอนตอไปก็ข้ึนอยูกับผูเขียน
การพัฒนาโปรแกรมก็ทําไดโดยไมตองวุนวายกบัการกําหนด path ตาง ๆ อีก
(ยกเวนเสียแตวา path ท่ีไดกําหนดขึ้นไมมีอยูจริง –
เราก็ตองกลับไปเร่ิมตนใหม พรอมกับ path ท่ีมีอยูจริง) ท้ังนี้ท้ังนั้น
ผูพัฒนาโปรแกรมตองเลือกเองวา วิธีไหนเหมาะสมที่สุด ถาตองใช Java
อยูบอย ๆ และ สม่ําเสมอก็ควรที่จะเลือกกําหนด path แบบถาวร
เพ่ือจะไดไมตองเสียเวลากับการกําหนด path
ส่ิงท่ีสําคัญอีกส่ิงหนึ่งท่ีขาดไมไดในการทดสอบและ execute code
ท่ีเขียนข้ึนดวย Java ก็คือ JRE หรือท่ีเรียกวา Java Run-time
Environment ถาเรานําเอา code ท่ีไดผานการ compile จาก J2SDK แลวไป
execute บนเครื่องท่ียังไมไดติดตั้ง JRE ผลลัพธก็คอื execute ไมได
แตถาเคร่ืองน้ันไดรับการติดตั้ง J2SDK ก็จะไดรับการติดตั้ง JRE
พรอมกันไปดวย ดังท่ีไดกลาวไวกอนหนานี้ สาเหตุท่ี Sun
ทําแบบนีก้็เพราะวา หลาย ๆ คนอาจไมใชผูพัฒนา Java
โปรแกรมแตเปนผูใชโปรแกรมที่เขียน
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
5
ข้ึนดวย Java ก็ได ดังน้ันหากเครื่องใด ๆ
ตองใชโปรแกรมท่ีเขียนข้ึนดวย Java บอย ๆ ก็ตอง download JRE
มาไวท่ีเคร่ืองดวย
1.4 เขียน code ท่ีเปน application หรือเขียน code ท่ีเปน applet
Applet เปน code ท่ีเขียนข้ึนมาเพ่ือใหสามารถที่จะ execute ใน web
browser ผานทาง HTML ไฟล ซึ่งโดยท่ัวไปมักจะมีขนาดเล็ก เพ่ือใหการ
download applet ทําไดรวดเร็วยิ่งข้ึน สวน application เปนการ execute
ไฟลผานทาง command line ดังนั้นขนาดจึงไมเปนอุปสรรค (เพราะไมตองมีการ
download) หนังสือเลมน้ีจะแสดงโปรแกรมตัวอยางดวยการเขียน code
ในรูปแบบของ application 1.5 เคร่ืองมือ หรือ คําสั่ง (SDK tools)
ท่ีตองใชในการพัฒนาโปรแกรม Java Development Kit
ไดถูกเปล่ียนใหมีช่ือเปน J2SDK – Java 2 Software Development Kit
ดังนั้นเราจะใชช่ือเคร่ืองมือในการพัฒนาโปรแกรมนี้สลับกันไปมา
แตใหตั้งสมมติฐานวาท้ังสอง ตางก็เปนเคร่ืองมือท่ีใชในการพัฒนา Java
โปรแกรมเชนเดียวกัน javac เปนเคร่ืองมือท่ีใชในการ compile (compiler)
ท่ีทําการเปล่ียน source code ท่ีเรา
เขียนข้ึนใหเปน byte code java เปนเคร่ืองมือท่ีใชในการ execute
byte code สําหรับโปรแกรมท่ีเขียนข้ึนในแบบของ
application javaw เชนเดียวกับ java appletviewer
เปนเคร่ืองมือท่ีใชในการ execute โปรแกรมท่ีเขียนข้ึนในแบบของ applet
ยังมีเคร่ืองมืออีกหลายตัวท่ี java มีให
แตตอนนี้เราจะใชเฉพาะเคร่ืองมือท่ีไดกลาวไวแคสามตัวนี้ เทานั้น
การพัฒนาโปรแกรมทั้งท่ีเปน application และ applet
นั้นจะมีข้ันตอนท่ีแตกตางกันพอสมควร ดังแสดงใหเห็นในภาพที่ 1-8
และในภาพที่ 1-9 ในการเขียน code นั้นเราจะตองมี editor ท่ีเปน text
editor กลาวคอืเปน editor ท่ีไมมีการเก็บ format ตาง ๆ
ของตัวอักษรดังเชนท่ี Microsoft Word เก็บ แตจะเก็บเปนรหัส ASCII ท่ี
SDK สามารถอานและ execute ได สมมติวาเรามี text editor และ SDK
แลวการพัฒนาก็เปนไปตามขั้นตอนท่ีแสดงในภาพทั้งสอง
ภาพที่ 1-8 ขั้นตอนการพัฒนาโปรแกรมที่เปน application
Text Editor Javac
Java
Java Source File First.java
Java Class File First.class
Java Program Output
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
6
ภาพท่ี 1-9 ขั้นตอนการพัฒนาโปรแกรมที่เปน applet 1.6
การสรางโปรแกรม Java ท่ีเปน application สมมติวาเราเลือกใช text
editor ตัวใดตัวหนึง่ท่ีมีอยูมากมาย ท้ังท่ี free
และทั้งท่ีตองจายเงินซื้อมา เราก็มาลองเร่ิมเขียนโปรแกรมตัวแรก
กันเลยดีกวา
เพ่ือใหเขาใจไดงายถึงข้ันตอนและที่มาท่ีไปในการเขียนโปรแกรมดวยภาษา
Java เราจะเขียนโปรแกรมท่ีไมทําอะไรมากมายนัก
เพียงแตสงขอมูลไปยังหนาจอเมื่อ user เรียกใช (execute) โปรแกรมนี้
เราจะตั้งช่ือโปรแกรมน้ีวา HelloWorld.java และมีขอมูลดังนี ้
1: /** 2: Display a sentence "Hello World" to screen 3: */ 4:
class HelloWorld { 5: public static void main(String[] args) { 6:
System.out.println("Hello World!"); 7: } 8: }
ผูอานยังไมตองกังวลกับความหมายของศัพทเฉพาะ (keyword) ตาง ๆ ของ
Java ท่ีเห็นในตอนนี้ หลังจากท่ีเขียนโปรแกรมไดสักพักหนึ่ง
ผูอานก็จะเขาใจถึงความหมายเหลานี้ดีข้ึน
แตตอนนี้ตองเขาใจวาไฟลท่ีเราเขียนข้ึน มีนิยามของ class
ท่ีเราเขียนขึ้นช่ือ HelloWorld ซึ่ง Java กําหนดไววา ช่ือของ class
และชื่อของไฟลท่ีเก็บ code ของ class นี้จะตองเปนช่ือเดียวกัน class
นี้มี method อยูหนึ่งตวัช่ือ main() เม่ือเรา execute โปรแกรมนี้ JRE
จะคนหา method ท่ีช่ือ main() เพ่ือทําการประมวลผลชุดคําส่ังตาง ๆ
ท่ีมีอยู ท้ังนี้ method main() จะตองมี keyword ท่ีช่ือ public,
static, และ void อยู รวมไปถึง parameter ท่ีเปน array ท่ีเก็บ String
ดวย ถาผูอานเคยเขียนโปรแกรมดวย ภาษา C หรือ ภาษา C++
มากอนก็จะเห็นถึงความคลายคลึงกันของ method main() นี้
ตัวแปรที่มีอยูในวงเลบ็ (Parameter) ของ method main() ท่ีเปน
String[] args บงบอกถึงคา (command-line argument) ตาง ๆ
ท่ีผูใชโปรแกรมสงผานไปยังตัวโปรแกรมเพื่อเอาไวใชในการทํางานตาง ๆ
ซึ่งอาจมี หรือไมมีก็ได และเราจะยังไมกลาวถึงคาเหลาน้ีในเวลานี้ ในตัว
method main() เองมีประโยคที่ข้ึนตนดวย System.out.println("…")
ซึ่งเปนคําส่ังท่ีใชสงขอความไปยัง System.out ท่ีโดยท่ัว ๆ ไปก็คือ
console window หรือท่ีเรียกกันติดปากวา dos window หรือ dos prompt
ดังตัวอยางท่ีแสดงใหเห็นในภาพที่ 1-10
Text Editor Javac
appletviewer
Java Source File First.java
Java Class File First.class
Java Program Output
HTML file First.html
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
7
ภาพที่ 1-10 การ compile และ run โปรแกรม 1.6.1 การ compile
โปรแกรม HelloWorld ดังเชนท่ีแสดงใหเห็นในภาพที่ 1-10 การ compile
ไฟลท่ีเขียนข้ึนตองใชคําส่ัง javac ตามดวยช่ือไฟล พรอมกับนามสกุล
ดังนี ้ javac HelloWorld.java
ในการ compile
ทุกคร้ังเราจะตองไมลืมใสนามสกุลใหกับไฟลท่ีเราไดเขียนข้ึน
ไมเชนนั้นแลว compiler จะฟอง
โดยการสงขอความที่บอกถึงขอผิดพลาดในโปรแกรม (error message) ใหเราเชน
ถาเรา compile ไฟล HelloWorld โดยไมใส .java เราก็จะได error ดงันี้
E:\bc221Book\source>javac HelloWorld javac: invalid flag:
HelloWorld Usage: javac where possible options include: -g Generate
all debugging info -g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info … … …
(ผูเขียนไดตัดขอความบางสวนท่ี java ฟองออก) 1.6.2 การ execute
โปรแกรม HelloWorld สมมติวาเรา compile โปรแกรม HelloWorld โดยไมมี
error ใด ๆ เกิดข้ึนการ execute โปรแกรมก็ทําไดดวยคําส่ัง java
ตามดวยช่ือไฟล ดังนี ้ java HelloWorld
และก็จะได output ดังท่ีเห็นในภาพที่ 1-10 ในการ execute
โปรแกรมนั้นเราจะไมใส .class ตามหลังช่ือไฟล
(ถึงแมวาเราตองมีไฟลนี้ก็ตาม) ถาเราใส compilerก็จะฟองดวย error
ท่ีบอกวา หาไฟลไมเจอ (java.lang.NoClassDefFoundError)
ดังท่ีเห็นในภาพที่ 1-11
ภาพที่ 1-11 error ท่ีเกิดขึ้นจากการใส .class ตามหลังช่ือไฟลในขณะ
run โปรแกรม
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
8
1.6.3 สรุปขั้นตอนของการพัฒนาโปรแกรมที่เปน application 1. compile
ดวยคาํส่ัง javac ตามดวยช่ือไฟล พรอมกับนามสกุล 2. execute ดวยคาํส่ัง
java ตามดวยช่ือไฟลโดยไมมีนามสกุลใด ๆ ตอทาย การเขียนโปรแกรมที่ดีนั้น
ผูเขียนควรใสคําอธิบาย (comment) ถึงการทํางานของโปรแกรมที่เขียนข้ึน
เพ่ือใหผูท่ีนําโปรแกรมไปใช หรือผูอานคนอ่ืน
เขาใจถึงวิธีการใชท่ีถูกตอง ในการเขียน comment ดวยภาษา Java นั้น
มีการทําไดสองวิธี คือ 1. การใช // 2. การใช /* … */
การใชในแบบที่หนึ่งนั้น เปนการใส comment ไดไมเกิน 1 บรรทัด
สวนการใชในแบบที่สอง ผูใชสามารถที่จะใส comment ไดมากกวาหนึ่งบรรทัด
แต comment ตองอยูภายในเคร่ืองหมาย /* … */ เทานั้น
ดังตัวอยางจากการนําโปรแกรม HelloWorld มาเขียนใหมดวย comment
1: /** 2: Display a sentence "Hello World" to screen 3: */ 4:
class HelloWorld { 5: //Java launcher will call this method to 6:
//display string "Hello World!" 7: public static void main(String[]
args) { 8: System.out.println("Hello World!"); 9: } 10: }
1.7 การสรางโปรแกรม Java ท่ีเปน applet ในการเขียนโปรแกรมที่เปน
Java applet นั้นเราจะตองมีไฟลอยูอยางนอย 2 ไฟล ซึ่งหนึ่งในนั้นคือ
Java source file และอีกไฟลหนึ่งคือ HTML file เราลองมาเขียน applet
เล็ก ๆ ท่ีสงขอความไปยัง web browser เหมือนกับท่ีเราเขียน
application กอนหนานี ้
1: /** 2: My first Java applet 3: */ 4: 5: import
javax.swing.JApplet; 6: import java.awt.Graphics; 7: 8: public
class HelloWorldApplet extends JApplet { 9: public void
paint(Graphics g) { 10: g.drawString("Hello World! สวัสดีครับโลกเกา
ๆ ใบน้ี", 25, 25); 11: } 12: }
เนื่องจากวาเราตองการ applet สําหรับการสงขอความไปยัง web browser
ดังนั้นเราจึงตองดึงเอาเคร่ืองมือท่ีชวยใหเราสามารถแสดงขอความที่วา
ดวยการใชการถายทอดคุณสมบัติ (inheritance) ท่ี Java
มีใหดวยการเพิ่มคําวา extends Applet ทางดานหลังของ class
HelloWorldApplet
เราจะยังไมพูดถึงรายละเอียดเก่ียวกับการถายทอดคุณสมบัติของ Java ตอนนี
้อีกส่ิงหนึ่งท่ีขาดไมไดในการเขียน applet ของเราตอนนี้ก็คือ method
paint() ซึ่งเปน method ท่ีทําการวาดขอความลงบน applet ดวยการเรียกใช
method drawstring() จาก class Graphics ในตาํแหนงท่ีกําหนดไว
จากคําส่ังนี้ g.drawString("Hello World! สวัสดีครับโลกเกา ๆ ใบนี้",
25, 25); เม่ือ compile โปรแกรม HelloWorldApplet ดวยคําส่ัง javac
แลวเราก็สามารถที่จะ execute applet ไดดวยการเรียก HTML
ไฟลท่ีเขียนข้ึน ดังนี้
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
9
ดวยการใช applet tag ใน HTML ไฟลพรอมกับการใสช่ือของ Java ไฟลท่ี
compile แลวในสวนของ field ท่ีช่ือ code และกําหนดขนาดความกวางของ
applet ใน field ท่ีช่ือ width และความยาว (สูง) ใน field ท่ีช่ือ
height การ execute ไฟล HelloWorldApplet.html
ก็สามารถทําไดดวยการใชคําส่ัง appletviewer ตามดวยช่ือไฟล เราก็จะได
output ดังนี ้
ภาพที่ 1-12 Applet แสดงคา Hello World 1.7.1
สรุปขั้นตอนการเขียนโปรแกรมแบบ applet 1. สราง Java source file
ดวยการ extends Applet 2. สราง HTML file ท่ีมี applet tag
และขอมูลท่ีสําคัญในการแสดง applet คือ (1) class file ของ
Java โปรแกรม (2) ขนาดของ applet – width และ height
เราคงจะทิ้งเร่ืองการเขียน applet ไวเพียงแคนี้
แตจะไปศึกษาถึงโครงสรางตาง ๆ ของภาษา Java ข้ันตอนการออกแบบ
และการเรียกใช class รวมไปถึงเทคนิคและวิธีการใช method ตาง ๆ ท่ี
Java มีใหในรูปแบบของการสราง application เทานั้น 1.8 การสราง Java
program ดวย Crimson Editor ตัวอยางของโปรแกรม HelloWorld.java
ท่ีเราไดเขียนข้ึนกอนหนานี้ใชภาษาอังกฤษท้ังหมดในการเขียน
ผลลัพธท่ีไดจากการ run โปรแกรมก็เปนภาษาอังกฤษ ผานทาง Dos Window
ถาเราตองการท่ีจะเขียนโปรแกรมเพื่อใหแสดงผลลัพธ หรือ
ขอความท่ีเปนภาษาไทยนั้น จะตองใช Operating System
ท่ีรองรับการปอนและสงขอมูลท่ีเปนภาษาไทย เชน Windows ตาง ๆ
ท่ีสรางขึ้นมาเพ่ือคนไทยโดยเฉพาะ ซึ่งจะสังเกตไดจากคําวา Thai Edition
หรือ คําวา ไทย ตอทาย แตก็มี OS หลาย ๆ
ตัวท่ียอมใหมีการปอนและสงขอมูลท่ีเปนภาษาไทยผานทางชองทางอ่ืน ๆ
ท่ีไมใช Dos Window ในการฝกฝนการเขียนโปรแกรม Java ใหม ๆ
นั้นเราจําเปนท่ีจะตองมีชองทางในการแสดงผลที่สามารถใชไดท้ังภาษาไทย
และภาษาอังกฤษ
ดังนั้นเพื่อใหการปอนและสงขอมูลใชไดท้ังภาษาไทยและภาษาอังกฤษ
เราจะเลือกใช Text Editor ท่ีรองรับภาษาไทย เชน Crimson
กอนอ่ืนเราตองหา Crimson
มาติดตั้งในเคร่ืองท่ีเราใชในการสรางโปรแกรมดวยภาษา Java เสียกอน
ซึ่งสามารถที่จะไป download มาไดจาก http://www.crimsoneditor.com/
โปรแกรมตัวนี้เปน freeware เม่ือติดตั้งเรียบรอยแลวก็ใหเขาไปใน menu
ท่ีช่ือวา Tools
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
10
ภาพท่ี 1-13 การกําหนดคา Preferences เลือก Preferences
ก็จะไดหนาตางท่ีเห็นนี ้
ภาพท่ี 1-14 หนาตางการกําหนด font click ท่ี Fonts และเลือก font
ใหกับ Screen fonts ซึ่งเปนหนาตางสําหรับการ edit ผูอานควรเลือก font
ท่ีรองรับภาษาไทย เชน Tahoma หรือ font ตระกูลอ่ืนๆ ท่ีมีคําวา UPC
ตามหลัง เสร็จแลวใหทําแบบเดียวกับ Printer fonts และ Miscellaneous
(เราจะแสดงใหดูเฉพาะการกําหนด font ใหกับหนาตางแสดงผล) ในการกําหนด
font ของหนาตางแสดงผล ผูอานจะตองกดปุมสองครั้งใน Output Window
เพ่ือเปล่ียนคาตางๆ ท่ีตองการ
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
11
ภาพที่ 1-15 หนาตางแสดงผล
หลังจากกดปุมสองคร้ังก็จะไดหนาตางของการกําหนด font ใหกับหนาตางแสดงผล
ดังท่ีแสดงในภาพที่ 1-16 ซึ่งผูอานสามารถที่จะกําหนดตางๆ ไดเอง
ภาพที่ 1-16 การกําหนด font และคาตางๆ
หลังจากท่ีกําหนดคาใหกับหนาตางทุกตัวเรียบรอยแลว เราก็ตองมากําหนดให
Crimson รูจักกับการ compile และ execute โปรแกรมในภาษา Java
ดวยการเลอืก Conf. User Tools ในสวนของ Preference
ซึ่งจะไดหนาตางดังท่ีเห็นในภาพที่ 1-17
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
12
ภาพท่ี 1-17 หนาตางการกําหนดคาของ User Tools
เร่ิมตนดวยชองแรกสุดใน User Tools ท่ีเขียนวา Empty
ใสขอมูลดังตัวอยางท่ีเห็นในภาพที่ 1-18
ภาพท่ี 1-18 การกําหนดคาใหกับการ compile
รายละเอียดขอมูลท่ีใสดังท่ีเห็นในภาพที่ 1-18 Menu Text: Compile Java
Source File ผูอานจะใสอะไรก็ไดท่ีส่ือความหมาย Command: ท่ีท่ีผูอานได
install Java ไว เชน c:\j2sdk1.5.0\bin\javac.exe ซึ่งอาจคนหาดวยการ
browse ผานทางปุมท่ีมีให Argument: $(FileName) เปนไฟลท่ีมีนามสกุล
เลือกจาก drop-down list Initial directory: $(FileDir) เลือกจาก
drop-down list Hot key: กดปุม Ctrl
แลวตามดวยปุมฟงคช่ันท่ีตองการใชเชน F5 พรอมกับใสเคร่ืองหมาย ในชอง
Capture output และ Save before execute
หลังจากนั้นก็ทําการกําหนดคําส่ังใหกับการ run
โปรแกรมดังตัวอยางท่ีแสดงในภาพที่ 1 – 19 โดยเปล่ียนขอมูลในชองของ
Argument ใหเปน $(FileTitle) เพราะJava
ตองการเพียงแคช่ือไฟลท่ีไมมีนามสกุลในการ run
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
13
ภาพที่ 1-19 การกําหนดคาใหกับการ run โปรแกรม
เม่ือทําทุกอยางเรียบรอยแลวใหกดปุม OK
เพ่ือทําการบันทึกคําส่ังท่ีเราสรางขึ้นให Crimson รูจัก และเมื่อได
compile และ run ผลลัพธท่ีเราไดคือ
ภาพที่ 1-20 ผลของการ run โปรแกรม HelloWorld.java
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
14
ถาเราตองการท่ีจะ run โปรแกรม HelloWorldApplet
ท่ีเราไดเขียนข้ึนและแสดงผลลัพธของการ run ผานทาง Crimson
เราตองทําการกําหนดคําส่ังอีกตัวหนึ่งข้ึนมา เพ่ือใหสามารถที่จะ run
Applet ได และโดยเฉพาะอยางยิ่ง การสงขอความที่เปนภาษาไทยไปยัง applet
ข้ันตอนและวิธีการก็คลายๆ การกําหนดในสวนอ่ืนกอนหนานี้
เพียงแตวาเราตองกําหนด option ของการแสดงผลใหใช HTML encoding
ท่ีสามารถแสดงผลเปนภาษาไทย ซึ่งทําไดงายๆ ดังภาพท่ีแสดงนี ้
ภาพท่ี 1-22 การกําหนด option ใหกับคําสั่ง appletviewer ภาพที่
1-23 แสดงผลลัพธของการใชคําส่ังท่ีเราไดกําหนดไวหลังจากท่ีเรากด ctrl
+ F7 ซึ่งเปนภาพเดียวกันกับภาพ 1-12
ภาพท่ี 1-23 ผลลัพธจากการ run HelloWorldApplet.html Crimson ยังมี
features ตางๆ อีกมากมายท่ีเราสามารถที่จะ set
ไวชวยในการทํางานของเราไดท้ังนี้ผูอานสามารถที่จะหาขอมูลเพ่ิมเติมไดจาก
help file ของตัว Crimson เอง
ส่ิงท่ีเราตองการบอยมากก็คือการใสขอมูลเขาสูโปรแกรมผานทาง keyboard
ซึ่งอาจเปนขอมูลทดสอบ หรือเปนขอมูลท่ีตองการใชจริงในโปรแกรม
แตเราไมสามารถทําได (งาย ๆ) ดวย Crimson
ดังนั้นเราจึงจําเปนตองใชเคร่ืองมือตัวอื่นในการนําขอมูลเขา เชน
command window หรือ การใช IDE ตัวอ่ืน ๆ ท่ีมีอยู เชน netbeans 1.9
การใช NetBeans สําหรับการพัฒนาโปรแกรม ปจจุบันผูใชสามารถที่จะเลือก
download Java 1.5 ท่ีมี NetBeans IDE รวมอยูดวยจาก Sun โดยตรง
NetBeans
เปนโปรแกรมที่ดีมากตัวหนึ่งสําหรับการพัฒนาโปรแกรมที่ตองการใช GUI
(Graphical User Interface) ท้ังโปรแกรมท่ี run บน web
และบนเคร่ืองโดยตรง
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
15
ภาพท่ี 1.28 โปรแกรม NetBeans
อีกท่ีหนึ่งท่ีผูอานสามารถ download NetBeans ไดก็คือ
http://www.netbeans.org/ เราจะแสดงวิธีการสรางโปรแกรมอยางงาย ๆ ดวย
Netbeans ใหดู
ภาพท่ี 1.29 New Java Application Project Dialogbox
หลังจากท่ีเปด Netbeans พรอมกับเลือก General และ Java Application
เราก็จะไดหนาตางดังท่ีเห็นในภาพ 1.29 และเมื่อกดปุม Next
เราก็จะได
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
16
ภาพท่ี 1.30 การตั้งช่ือ project และตําแหนงที่เก็บ project
และเมื่อเรากดปุม Finish เราก็จะไดหนาตางสําหรับเขียน code
ดังท่ีแสดงในภาพ 1.31 นี้
ภาพท่ี 1.31 แสดง project windows ตาง ๆ ท่ีถูกกําหนดจาก
Netbeans
หลังจากท่ีใส code เสร็จเราก็ compile project ดวยการกด Build
Build Main Project และเมื่อ compile เสร็จโดยไมมี error เราก็
execute project ดวยการกด Run Run Main Project
เราก็จะเห็นผลลัพธท่ีแสดงใน output window ดานลาง
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
17
ในการสราง applet นั้นเราตองเลือก Java Library Class ภายใต Java
Application ซึ่งเม่ือเลือกแลวเราก็จะไดหนาตางดังน้ี
ภาพท่ี 1.32 หนาตาง HelloWorldApplet ภายใต New Java Library
Class
หลังจากท่ีกดปุม Next เราก็จะไดหนาตางท่ีมี Project
อยูเราก็กดปุมขวาบน HelloWorldApplet (เราเรียกสวนตาง ๆ เหลานี้วา
node) เลือก New File/Folder เราก็จะไดหนาตางใหม ซึ่งเราตองเลือก Java
Classes ภายใต Categories และเลือก Applet ภายใต File Types
หลังจากนั้นก็กดปุม Next เราก็จะไดหนาตางใหมดังนี ้
ภาพท่ี 1.33 หนาตางของ New Applet
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
18
เราจะใหช่ือ Class Name วา HelloWorldApplet พรอมกับกําหนดให
Package เปน org.neramit.hello
ซึ่งผูอานสามารถกําหนดใหเปนอะไรก็ไดตามท่ีชอบ และเมื่อกด Finish
เราก็จะไดหนาตางสําหรับเขียน code ใหกับ applet ของเรา
และเพ่ือใหงายขึ้นเรานําเอา code ท่ีเห็นน้ีใสเขาสู method init()
ท่ีมีอยู public void init() {
String greeting = "Hello from Netbeans!"; setLayout(new
BorderLayout());
JLabel label = new JLabel(greeting, SwingConstants.CENTER);
add(label, BorderLayout.CENTER); JPanel panel= new JPanel();
JButton source = new JButton("neramit");
source.addActionListener(listenToURL("http://sci.fareastern.ac.th/faa"));
panel.add(source); add(panel, BorderLayout.SOUTH); } private
ActionListener listenToURL(final String url) { return new
ActionListener() { public void actionPerformed(ActionEvent e) { try
{ getAppletContext().showDocument(new URL(url)); }
catch(MalformedURLException ex) { ex.printStackTrace(); } } };
}
หลังจากนั้นก็กดปุมขวาบน HelloWorldApplet ใน Project window เลือก
Build Project และเมื่อเลือก Files tab เราก็จะเห็น
ภาพท่ี 1.34 ไฟลท่ีถูกสรางขึ้นจาก Netbeans โดยอัตโนมัติ
เราเรียกใช applet viewer เพ่ือดูผลลัพธไดดวยการกดปุมขวาบน
HelloWorldApplet.java ใน Project window เลือก Run File
-
intro
. to
Java
(FE
U.fa
a)
บทท่ี 1: กอนจะถึง Java
19
ภาพที่ 1.35 ผลลัพธจากการ run ไฟล HelloWorldApplet.java
อีกทางหนึ่งท่ีเราเรียกดู applet ของเราไดก็คือ ผานทาง web browser
ซึ่งเราสามารถทําผานทาง Netbeans ไดดวยการกดปุมขวาบน
HelloWorldApplet.html ท่ีอยูใน Files tab แลวเลอืก view เราก็จะเห็น
applet ใน browser ดังนี้
ภาพท่ี 1.36 applet ที่เปดใน browser
-
intro
. to
Java
(FE
U.fa
a)
เริ่มตนการเขียนโปรแกรมดวย Java
20
และถาผูอานกดปุม neramit web browser ก็จะไป load web site
ของผูเขียนมาแสดง เราจะกลับมาดูถึงการใช Netbeans ในบทที่ 11
เร่ืองของการสราง GUI สําหรับ application ตาง ๆ 1.10 ท่ีมาของภาษา
Java โดยสังเขป Java เปนภาษาที่เกิดข้ึนจากการพัฒนาของบริษัท Sun
Microsystems โดยมีท่ีมาจากภาษาที่ช่ือวา Oak ซึ่งเปนภาษาที่ใชภายใน
Sun เอง เขียนข้ึนโดย Patrick Naughton และ James Gosling
(มีการตั้งสมมุติฐานวาโปรแกรมตัวนี้ไดช่ือวา Oak ก็เพราะวา James
Gosling มองเห็นตน Oak นอกหนาตางท่ีทํางานทุกวัน) หนาท่ีเบื้องตนท่ี
Oak ตองทําก็คือเปนภาษาที่เล็ก มีความสามารถในเรื่องของชุดคําส่ังสูง
ใชหนวยความจํานอย ไมยึดติดกับระบบคําส่ังของ CPU ในรูปแบบ (platform)
ตางๆ เพราะจะตองนําไปใชกับอุปกรณอิเล็กทรอนิกส เชน ตูสับเปลี่ยนชอง
ของ cable TV แตหลังจากท่ี Sun ไดพัฒนา Oak และใชมาอีกระยะหนึ่ง Sun
ก็ไดนําเอา Oak ออกมาสูสายตาชาวบานท่ัวไป แตเนื่องจากวา ช่ือของ Oak
ไดมีผูใชอยูกอนแลว Sun จึงตองหาชื่อใหมใหกับภาษานี้
ซึ่งในตอนแรก็ไดทดลองหลายชื่อ เชน Silk, Ruby และ WRL (Web Runner
Language) แตช่ือเหลานี้ก็ไมไดถูกเลือก ในท่ีสุด Java
ก็กลายเปนช่ือของภาษานี้ (ท้ังๆ ท่ีไมมีอะไรเก่ียวของกับ กาแฟ จากชวา
หรือ อะไรท่ีเก่ียวของกับเกาะชวาเลย) Java
ไดออกสูสายตาของชาวโลกจริงเมื่อตนป ค.ศ. 1996 โดยทาง Sun
ไดเพ่ิมความสามารถใหกับ Java คือ สามารถที่จะ execute code
ท่ีอยูภายใน web page ได ทําให java
ไดรับความนิยมในหมูนักพัฒนาโปรแกรมมาก แต Java รุนแรกๆ
ก็ยังมีขีดความสามารถที่จํากัด ยังไมสามารถทําอะไรไดมากมายนัก
จนกระทั่งปลายป ค.ศ. 1998 ทาง Sun ก็ไดเปดตัว Java 1.2
ซึ่งเปนรุนท่ีทาง Sun ภูมิใจมากที่สุด มีการปรับแตงอยางมากมาย
เพ่ิมขีดความสามารถใหกับ Java เพ่ือใหสมกับคําท่ีทาง Sun
ไดสัญญาไวกับชาวโลกวา Java เปนภาษาที่เขียนข้ึนมาคร้ังเดียว แลวเอาไป
run ท่ีไหนก็ได (Write Once, Run Anywhere) ทาง Sun ไดเปลี่ยนใหมให
Java เปน Java 2 Standard Edition Software Development Kit Version
1.2 หลังจากนั้นไมนาน Sun ก็ออกรุนอ่ืนอีก 2 รุนมาสูสายตาชาวโลก คือ
รุน Micro Edition สําหรับการทํางานบนเครื่องมือส่ือสาร เชน
โทรศัพทเคลื่อนท่ี และรุน Enterprise edition
ซึ่งเปนรุนท่ีออกมาสําหรับการทํางานบนเซิรฟเวอร Java มีอยูมากมายหลาย
version แต version ลาสุดของ Java ขณะที่เขียนตําราเลมน้ี คือ
J2SDK1.5.0 ผูอานสามารถติดตาม version ใหม ๆ และ download ไดท่ี web
site ของ Sun ท่ีไดใหไวกอนหนานี้
ในบทที่สองเราจะมาทําความรูจักกับขอกําหนด ตาง ๆ ของ โปรแกรม ขอมูล
(data) ตัวแปร (variable) และ การประมวลผล (calculation –
evaluation)