วันอาทิตย์ที่ 11 กันยายน พ.ศ. 2554

ทฤษฎีเกี่ยวกับ JAXB และตัวอย่างการทำ Binding

JAXB เป็น Library ของ Java ที่ใช่ให้เราสามารถ เก็บข้อมูลของObject ในรูปของ File XML โดยสามารถ เปลี่ยนไปมาระหว่าง XML กับ Object ซึ่งมีประโยชน์อย่างมากงานการจัดเก็บข้อมูล

สำหรับผู้ที่สนใจเกี่ยวกับการทำงานของ JAXB สามารถศึกษาได้จาก Presentation ด้านล่างนี้ค่ะ

Presentation ส่วนที่ 2 จะเป็นตัวอย่างโค้ดที่ใช้ในการเปลี่ยนระหว่าง Java และ XML

ต่อไปจะเป็นตัวอย่างโปรแกรมในการทำ Bilding ใน NetBean

1. เริ่มต้นด้วย New Project สร้าง Java Application ขึ้นมา


2. New File เลือก XML และ JAVA Binding แล้วกด Next
3. ตั้งชื่อ Binding Name และ Browse ไฟล์ไปที่ XML Schema แล้วคลิกที่ปุ่ม Finish


4. ภาพที่แสดงการ binding สำเร็จ



การทำ object เป็น xml ไฟล์
1. Main Program เราสร้าง Object ของ class Student ซึ่งเป็นหนึ่งใน class ที่ถูกสร้างขึ้นจาก XML Schema โดยใช้ ObjectFactory ด้วยคำสั่ง
Student s[] = new Student[7];
จากนั้นตามด้วยข้อมูลที่ต้องการสร้าง

for(int i=0;i<=6;i++){
s[i] = new ObjectFactory().createStudent(); }


2. จากนั้น พิมพ์คำสั่ง jaxbm แล้วกด tab จะได้
try {
for(int i=1;i<=6;i++)
{
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(s[i].getCla

ss().getPackage().getName());
javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8"); //NOI18N
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(s[i], System.out);
}
} catch (javax.xml.bind.JAXBException ex) {
// XXXTODO Handle exception

java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
}
3. เมื่อกด run จะได้ผลลัพธ์ที่เป็น xml ดังนี้



การแปลง xml ไปเป็น object
1. อันนี้เป็นไฟล์ Student.xml ที่สร้างเอาไว้


2. ใน Main Program เราจะสร้าง Object ของclass Area ซึ่งเป็นหนึ่งใน class ที่ถูกสร้างขึ้นจาก XML Schema โดยใช้ ObjectFactory ด้วยคำสั่ง
Student s = new ObjectFactory().createStudent();

3. ใน Main Program พิมพ์ jaxbu แล้วกดปุ่ม Tab บน Keyboard จะได้โค้ดโปรแกรมดังภาพ

try {
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(s.getClass().getPackage().getName());
javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
s = (Student) unmarshaller.unmarshal(new java.io.File("D://Student.XML")); //NOI18N
} catch (javax.xml.bind.JAXBException ex) {
// XXXTODO Handle exception
java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
}

4. เพิ่มส่วนแสดงผล ด้วยคำสั่ง
System.out.println("Student Detail");
System.out.print(s.getStudentID());
System.out.print("\t"+s.getStudentFirstName());
System.out.println("\t"+s.getStudentLastName());

5. ผลลัพธ์ที่ได้

วันอาทิตย์ที่ 28 สิงหาคม พ.ศ. 2554

เริ่มต้นการใช้งาน Google App Engine ด้วย NetBean


เริ่มต้นการใช้งาน Google App Engine ด้วย NetBean โดยในที่นี้ผู้เขียนได้ใช้ NetBean version 6.7.1

อันดับแรกการใช้งาน Google App Engine นั้นจะต้องมี Account ของ google ก่อน และให้เข้าไป Sign Up ในหน้า Google App Engine ที่ https://appengine.google.com/start จะขึ้นหน้าต่างมาดังรูป


ให้เรากดปุ่ม Create Application เพื่อสร้าง Application ของเราขึ้นมา หลังจากนั้นจะมีการให้เรายืนยันผ่านทาง SMS โดยให้ใส่เบอร์โทรศัพท์ของเรา และ Google จะส่งรหัสผ่าน SMS มาให้ ให้เรากรอกรหัสผ่านลงไป
หลังจากนั้นให้สร้าง Application ของเราขึ้นมา โดยกรอก Application Identifier ว่า "compoapp" ดังรูป



เมื่อสร้าง Application ของเราใน Google App Engine เรียบร้อยแล้ว ต่อไปให้เข้าไป Download Google App Engine SDK for Java มาและทำการ แตกไฟล์

ขั้นต่อไป เราจะต้องทำการลงทะเบียน Google App Engine SDK ใน NetBean Plugin ดังนี้
1.เปิดโปรแกรม NetBean 6.7.1 ขึ้นมา
2.ไปที่ menu Tools => Plugins
3.กดเลือกแถบ Settings
4.กดปุ่ม Add ด้านขวามือ
5.ใส่ชื่อ Name : "compoapp" และ URL : "http://kenai.com/projects/nbappengine/downloads/download/1.0_NetBeans671/updates.xml " (สำหรับ URL จะใส่ตาม version ของ NetBean ในที่นี้เป็น version 6.7) แล้วกดปุ่ม OK
6.เลือกแถบ Available Plugins ด้านบน
7.ติ้กเลือกชื่อทุกอันที่เป็น Google App Engine
8.กดปุ่ม Install กดปุ่ม Next =>เลือก I Acept => Install => Continue => Finish
ต่อไปเป็นการ ติดตั้ง Google App Engine Service ใน NetBean
9.กลับมาสู่หน้าปกติของโปรแกรม NetBean แล้วเลือกแถบ Service ด้านซ้ายมือ
10.คลิกขวาที่ Servers => Add Server..
11.ที่หน้าต่าง Add Server Instance ให้เลือก Server เป็น Google App Engine แล้วกด Next
12.ส่วนต่อไปให้เลือก Location ที่เราได้ติดตั้ง Google App Engine SDK for Java ไว้ แล้วกด Next
13.ส่วนของ Server Properties ให้ใส่ HTTP Port เป็น 8080 และ Debug Port เป็น 8765 ซึ่งเป็น default แล้วกด Finish เป็นอันเสร็จสิ้นการตั้งค่า Server
14.ต่อไปให้สร้าง Project ใหม่ขึ้นมาโดยไปที่ menu File => New Project..
15.Step 1 ให้เลือก Categories เป็น "Java Web" และที่ Projects เป็น "Web Application" แล้วกด Next

16.Step 2 ตั้งชื่อ Project ในที่นี้ใช้ชื่อว่า "TestAppEngine" และเลือก Location ของ Project แล้วกด Next
17.Step 3 ให้เลือก Server : เป็น "Google App Engine" แล้วกด Finish
18.นำตัวอย่างโปรแกรมใน Folder servletAndJSP ซึ่งในที่นี้ได้นำเอาโปรแกรม BasicCounter มาทดลองใช้กับ Google App Engine
19.ทำการ copy ไฟล์ index.jsp และ copy package foo จาก โปรแกรม BasicCounter มาใส่ใน Project TestAppEngine ที่สร้างขึ้นในข้อข้างต้น และกดปุ่ม Run จะไปขึ้นบนหน้าต่างของ Internet Browser ดังรูป

20.ทำการ Deploy เข้า Google App Engine โดยเข้าไปที่ NetBean ใน Project TestAppEngine ที่เราสร้างไว้ ทางด้านซ้ายมือหน้าต่าง Project คลิกที่ WEB-INF ดับเบิ้ลคลิกที่ appengine-web.xml
21.ให้เราใส่ชื่อ Application ตรง Application Name ว่า "compoapp" ซึ่งเป็นชื่อเดียวกันกับ Application Identifier ตอนที่สร้าง Application ใน Google App Engine ดังรูป
22.ให้คลิกขวาที่ Project TestAppEngine ทางด้างซ้ายมือ แล้วเลือก Deploy To Google App Engine
23.จะขึ้นหน้าต่าง Set up your Google email and password ให้เราใส่ Email และ Password ของเราลงไปแล้วกด OK เป็นอันเสร็จการ Deploy บน Google App Engine เรียบร้อยแล้ว :D

ในหน้า My Application ที่ Google App Engine ของเราก็จะมี Application ขึ้นมา
เราก็จะได้ Google App Engine ซึ้งเป็น Web Application ของเราขึ้นมา ซึ่งสามารถเข้าได้ที่ http://compoapp.appspot.com/ ค่ะ ^^



วันศุกร์ที่ 1 กรกฎาคม พ.ศ. 2554

การนำ JavaBeans มาใช้ใน NetBeans

จากบทความที่แล้วได้มีการลองสร้าง Beans ขึ้นมาเพื่อใช้ใน BeansBox
ในบทความนี้จะลองนำ Beans ที่สร้างขึ้นเองเข้าไปใช้งานในโปรแกรม NetBeans

1. สร้าง Projectใหม่ ไปที่ File -- New Project



2. เลือก Java Application กด Next



3. ตั้งชื่อโปรเจ็ค เลือกปลายทางบันทึกไฟล์งานได้แล้วกด Finish



4. คลิกขวาที่ชื่อ Project ที่กล่อง Project ด้านซ้ายมือเลือก New -- JFrame Form ...



5. ตั้งชื่อ Class กด Finish



6. หลังจากที่ได้สร้าง Beans เป็นไฟล์ Jar ไว้แล้ว ต่อไปจะ import ไฟล์ beans เข้ามาใช้ใน NetBeans
เลือก Tool -- Palatte -- Swing/AWT Components



7. คลิกที่ Add From JAR ...



8. จากครั้งที่แล้วที่ได้สร้างโปรแกรม Counter
Beans ที่นำมาประกอบมี OurButton (อยู่ใน buttons.jar) , Counter (อยู่ในCounter.jar)
และ TickTock(อยู่ใน misc.jar) ทำการเลือกไฟล์ .JAR ทั้ง3ไฟล์แล้วกด Next



9. โปรแกรมจะแสดงตัว Beans ทั้งหมดจากไฟล์ .JAR
ถ้าไม่พบไฟล์ที่ต้องการ ให้เลือกติ๊กที่ Show All JavaBeans ด้านล่างก่อน
แล้วเลือก Beans ที่ใชั้ทั้ง 3 ตัว คือ Counter ,OurButton, TickTock ตามภาพ



10. จะให้แสดงผลใน Category ใด เลือกใส่ไว้ใน Beans กด Finish



ผลลัพธ์ จะพบว่า Beans ทั้งหมดถูก import เข้ามาในกล่อง Palette ช่อง Beans ด้านขวามือบน



11. ต่อไปเป็นการประกอบตัวหน้าตาโปรแกรม โดยการลาก Beans ที่ Import เข้ามา
จัดวางลงในหน้าต่างส่วนกลาง โดยเริ่มต้นที่ลากปุ่มมาใส่จาก Beans OurButton
ตั้งค่า Propertie ในกล่องด้านขวามือ ช่อง Label เพื่อเปลี่ยนข้อความบนปุ่ม
สร้าง 3 ปุ่มคือ Start Stop และ Reset



12. ลาก Counter มาจัดวาง ปรับขนาดให้เรียบร้อย



13. ลาก TickTock มาวาง ซึ่งจะไม่ปรากฏบนหน้าต่าง Interface
ปรับค่า Intervalในกล่อง Properties ด้านขวามือเป็น 1 (เพิ่มขึ้นทีละ1)



14. กล่อง Inspector ด้านซ้ายมือล่าง คลิกขวาที่ tickTock1 (ตัว Object Beans TickTock)
เลือก Events -- PropertyChange -- propertyChange

** สังเกตกรอบสีเขียว คือ ชื่อของ Counterที่เราสร้างขึ้นในForm ชื่อว่า counter 1 **


15. มันจะสร้าง Method tickTock1PropertyChange ซึ่งสามารถเรียกใช้งาน Eventได้
ทำการเรียก increment มาใช้งาน โดยเขียนเป็น ชื่อ Counter.increment();
(ชื่อCounter ของเราคื่อ counter1 จากข้อเมื่อกี้ได้กล่าวไว้)



16. ต่อไปเป็นการกำหนด Event ให้กับปุ่มทั้ง 3
คลิกขวาที่กล่อง Inspector ด้านซ้ายมือล่าง เลือกปุ่มแรกที่ชื่อว่า ourButton1
เลือก Events -- Action -- actionPerformed



17. มันจะสร้าง Method ให้เหมือนเดิม กำหนดให้ Counter เริ่มทำ ใช้คำสั่ง ชื่อCounter.start();


อีก 2 ปุ่มทำเหตุการณืเดียวกันแต่เปลี่ยนคำส่ง Event เป็น
ชื่อCounter.stop();
เพื่อหยุด และ ชื่อCounter.reset(); เพื่อเคลียร์ค่า



18. เสร็จแล้วทำการเปิดดูโปรแกรมด้วยการคลิกขวาที่ Form เลือก Run File หรือกด Shift + F6



ผลลัพธ์ของโปรแกรม : กดStop เพื่อหยุด, กดResetเพื่อเคลียร์ค่าเป็น0,กดStartเพื่อเริ่มใหม่

วันพฤหัสบดีที่ 30 มิถุนายน พ.ศ. 2554

ตัวอย่างการสร้าง Beans

การสร้าง Beans เพื่อนำไปใช้ใน BeansBox เราสามารถเขียนโดยการสร้างเป็น File.java
โดยต้องมีการศึกษาวิธีการเขียนและเขียนให้ถูกต้องตามหลักการสร้าง Beans
หลังจากนั้นต้องนำไฟล์ java ไปสร้างเป็นไฟล์ jar เพื่อนำไปใช้งานใน BeansBox
วิธีการไม่ยาก ตามวิธีที่จะกล่าวด้านล่างต่อไปนี้


1. สร้าง Manifest File (ไฟล์ที่รวบรวมรายละเอียดของ Jar File) ดังนี้



รายละเอียดการสร้าง Manifest File

Main-Class : ชื่อ Package.ชื่อ Class
Name : ชื่อ Package/ชื่อ Class.class
Java-Bean : True
---- เว้นบรรทัด 1 บรรทัดด้วย ----

เสร็จแล้วจัดการเซฟเป็นไฟล์นามสกุล.mf
จากตัวอย่าง : save as -- Counter.mf






2. นำไฟล์ .java ใส่ในโฟลเดอร์เดียวกับ Manifest File ที่สร้างไว้้
ทำการ Compile ไฟล์ Java โดยใช้คำสั่งดังนี้ --- javac -d . ชื่อไฟล์.java

ตัวอย่าง





ผลลัพธ์ คือ จะได้ Folder ที่ชื่อเหมือน Package (ในที่นี้คือCounter)
ที่มีไฟล์.class อยู่ข้างใน ตามภาพนี้










3. สร้างไฟล์นามสกุล .jar โดยใช้คำสั่งดังนี้ --- jar -cfm ชื่อไฟล์.jar ชื่อไฟล์.mf .\ชื่อโฟลเดอร์\*.*
ความหมายของคำสั่งนี้ คือ สร้างไฟล์ .jar โดยบันทึกเป็น ชื่อไฟล์.jar โดยดึงข้อมูลจาก ชื่อไฟล์.mf และดึงไฟล์จากโฟลเดอร์ ชื่อโฟลเดอร์ ทั้งหมดสร้างออกมาเป็นไฟล์ Jar

ตัวอย่าง





ผลลัพธ์ คือ ได้ไฟล์ .Jar ออกมาดังภาพ









4. หลังจบขั้นตอนที่ 3 เราสามารถนำไฟล์ .jar ที่เราสร้างไปใช้งานใน BeansBox ได้แล้ว
ต่อไปเป็นการนำไปใช้ใน BeansBox เริ่มจากรันโปรแกรม Beanbox
โดยเข้าไปใปที่โฟลเดอร์ BeansBox แล้วกดรันที่ File ตามภาพ

















5. เมื่อหน้าต่างโปรแกรมขึ้นมา ทำการ Load ไฟล์ Jar ที่เราได้สร้างไว้โดยเลือก File--LoadJar
เลือกไฟล์ Counter.Jar ที่เราได้สร้างไว้เข้ามา
















ผลลัพธ์ คือ ใน Tool Box จะทำการเพิ่ม Counter เข้าไปให้เลือกใช้งานได้




















6. ต่อไปเป็นการประกอบส่วนต่างๆเข้าด้วยกันเพื่อใช้งาน Counter โดยใช้ Tool ดังนี้
- Counter ที่เราสร้างขึ้น ลากมาใส่ได้เลย
- OurButton สร้างปุ่ม Start - Stop - Reset โดยคลิกมาวางแล้วเปลี่ยนค่าในช่อง Propertie - Label
- TickTock เนื่องจากมีการใช้การนับเวลาเหมือนจับนาฬิกาต้องใช้เครื่องมือนี้ด้วย
ลากเข้ามาใส่ ตั้งค่าในกล่อง Properties ช่องinterval เป็น 1 (เพิ่มขึ้นทีละ1)

ผลลัพธ์ออกมาดังภาพ
























7. หลังจากประกอบเสร็จแล้วก็ทำการใส่ Event ให้ Our Button และ TickTock ดังนี้
- ตั้งค่า Event ให้กับ Button
กดเลือกที่ปุ่มที่จะตั้งค่า ให้ไปที่ Edit --Events--mouse--mouseClicked
จะมีเส้นแดงปรากฏออกมา ลากเส้นแดงให้ปลายทางชี้ไปที่ Counter


จะมีหน้าต่างให้เลือก Event เลือกดังนี้
- ปุ่ม Start เลือก start
- ปุ่ม Stop เลือก stop
- ปุ่ม Reset เลือก reset

เสร็จสิ้นการตั้งค่าปุ่ม











- ตั้งค่า Event ให้กับ TickTock
กดเลือกที่ปุ่มที่จะตั้งค่า ให้ไปที่ Edit --Events--propertyChange--propertyChange
จะมีเส้นแดงปรากฏออกมา ลากเส้นแดงให้ปลายทางชี้ไปที่ Counter


จะมีหน้าต่างEvent ปรากฏขึ้น
เลือก increment













8. เรียบร้อยแล้ว ลองกดปุ่มดู ถ้ากด Stop จะหยุด Reset จะกลับเป็น 0 และ Start จะเริ่มนับใหม่




---- start





---- stop





---- reset