สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com

ฟรี TUTORIAL JAVA

ฟรีtutorial JAVA 01 install Eclipse ฟรีtutorial JAVA 02 intro to programming Eclipse ฟรีtutorial JAVA 03 condiotion ฟรีtutorial JAVA 04.loop ฟรีtutorial JAVA 05.array ฟรีtutorial JAVA 05 2 array cont ฟรีtutorial JAVA 06 01 function ฟรีtutorial JAVA 06 02 function cont ฟรีtutorial JAVA 07 object ฟรีtutorial JAVA 08 string ฟรีtutorial JAVA 09 constructor ฟรีtutorial JAVA 10 01 oop ฟรีtutorial JAVA 10 02 oop2 ฟรีtutorial JAVA 11 exception ฟรีtutorial JAVA 12 reading file ฟรีtutorial JAVA 13 thread ฟรีtutorial JAVA 14 generic ฟรีtutorial JAVA 15 01 GUI ฟรีtutorial JAVA 15 02 GUI2 ฟรีtutorial JAVA 15 03.GUI3 ฟรีtutorial JAVA 16 using WindowBuilder ฟรีtutorial JAVA 17 event ฟรีtutorial JAVA 18 database management system ฟรีtutorial JAVA 19 ER diagram ฟรีtutorial JAVA 20 Relational ฟรีtutorial JAVA 21 Xampp ฟรีtutorial JAVA 22 JDBC ฟรีtutorial JAVA 23 MVC ฟรีtutorial JAVA 24 SQL ฟรีtutorial JAVA
ขอย้ำอีกครั้งว่าเนื้อหาที่เห็นอยู่นี้ไม่ใช่เนื้อหาตามปกติที่เราสอนในห้องเรียนเป็นแค่ tutorial ไว้อ่านประกอบเฉยๆ แทบไม่เกี่ยวกันเลย และไม่เกี่ยวกับการบ้านที่ทำครับ ในห้องเรียนเนื้อหาจะเยอะกว่านี้ค่อนข้างมากครับ
ขอบคุณน้องตี้ อย่างสูงสำหรับ Tutorial ดีๆ

ฟรี TUTORIAL DATA STRUCTURE

DATA STRUCTURE

ฟรีtutorial : DATA STRUCTURE : 01 1การเรียงลำดับ(Sorting) ฟรีtutorial : DATA STRUCTURE : 01 2 การเรียงลำดับ2 ฟรีtutorial : DATA STRUCTURE : 02 อาร์เรย์ลิสต์ (Array List) ฟรีtutorial : DATA STRUCTURE : 03 ลิงค์ลิสต์ (Linked List) ฟรีtutorial : DATA STRUCTURE : 04 สแต๊ค ฟรีtutorial : DATA STRUCTURE : 05 1 คิวและไพออริตี้คิว ฟรีtutorial : DATA STRUCTURE : 05 2 คิวและไพออริตี้คิว ฟรีtutorial : DATA STRUCTURE : 06 1 ไบนารีทรี ฟรีtutorial : DATA STRUCTURE : 06 2 ไบนารีเสิร์ชทรี ฟรีtutorial : DATA STRUCTURE : 06 3 ไบนารีเสิร์ชทรี ฟรีtutorial : DATA STRUCTURE : 08 แฮช ฟรีtutorial : DATA STRUCTURE : 09 กราฟ ฟรีtutorial : DATA STRUCTURE :
ขอย้ำอีกครั้งว่าเนื้อหาที่เห็นอยู่นี้ไม่ใช่เนื้อหาตามปกติที่เราสอนในห้องเรียนเป็นแค่ tutorial ไว้อ่านประกอบเฉยๆ แทบไม่เกี่ยวกันเลย และไม่เกี่ยวกับการบ้านที่ทำครับ ในห้องเรียนเนื้อหาจะเยอะกว่านี้ค่อนข้างมากครับ
ขอบคุณน้องตี้ อย่างสูงสำหรับ Tutorial ดีๆ

การจัดการอีเวนท์(Event Handling)

            หลังจากสามารถสร้าง GUI ให้ได้หน้าต่างแบบที่ต้องการเป็นที่เรียบร้อยก็จะพบว่าเมื่อรันโปรแกรมจะปรากฏหน้าจอ GUI ขึ้นมาก็จริงแต่ไม่สามารถตอบสนองได้ เช่น กดปุ่มก็ไม่เกิดอะไรขึ้น นั่นก็เป็นเพราะว่ายังไม่ได้มีการกำหนดหน้าที่ของคอมโพเนนท์ต่างๆใน GUI ซึ่งการจะกำหนดการกระทำต่างๆให้ GUI เรียกว่าการจัดการกับอีเวนท์ หรือ Event Handling

การจัดการกับอีเวนท์

            Event แปลว่าเหตุการณ์ ซึ่งหมายถึงเหตุการณ์ต่างๆที่เกิดขึ้นกับโปรแกรม เช่น เกิดเหตุการณ์คลิ๊กโดยเมาส์ การกดปุ่มที่แป้นพิมพ์ (เช่นปุ่ม Enter) แต่การสร้าง GUI เฉยๆไม่ได้กำหนดการรับมือกับเหตุการณ์ต่างๆหากอยากให้โปรแกรมใช้งานได้ก็ต้องรับมือกับอีเวนท์ด้วย ซึ่งก่อนอื่นควรทำความรู้จักกับอีวเนท์ประเภทต่างๆก่อน ซึ่งจะแนะนำจาก ประเภทอีเวนท์ว่าอีเวนท์นั้นๆใช้ทำอะไร โดยจะ new anonymous inner class ของอินเตอร์เฟซใดและใช้เมท็อดอะไร

1.ActionEvent

การใช้งาน : อีเวนท์นี้มีไว้สำหรับจัดการกับการคลิ๊ก JButton และ  การใช้ปุ่ม Enter การดับเบิลคลิ๊กและการเลือกใน MenuItem

อินเตอร์เฟซ : ActionListener

เมท็อด : actionPerformed(ActionEvent)

2.ComponentEvent

การใช้งาน : เป็นตัวบอกให้รู้ว่าใช้คอมโพเนนท์อะไรบ้าง

อินเตอร์เฟซ : ComponentListener

เมท็อด : componentMoved(ComponenEvent), componentHidden(ComponenEvent), componentShow(ComponenEvent)

3.ContainerEven

การใช้งาน :สำหรับการเพิ่มและลบคอนเทนเนอร์

อินเตอร์เฟซ : ContainerListener

เมท็อด : componentAdded(ContainerEvent), componentRemoved(ContainerEvent),

4.FocusEvent

การใช้งาน : เมื่อผู้ใช้เลื่อนอุปกรณ์อินพุตมาชี้ยังอ็อปเจ็คของส่วนประกอบกราฟฟิกใดๆ

อินเตอร์เฟซ : FocusListener

เมท็อด : focusGained(FocusEvent), focusLost(FocusEvent)

5.ItemEvent

การใช้งาน : เมื่อทำการเลือกรายการใน List หรือ Checkbox

อินเตอร์เฟซ : ItemListener

เมท็อด : itemStateChaned(ItemEvent)

6.KeyEvent

การใช้งาน : เมื่อการทำงานเกี่ยวข้องแป้นพิมพ์

อินเตอร์เฟซ : KeyListener

เมท็อด : keyPressed(KeyEvent), keyReleased(KeyEvent), keyTyped(KeyEvent),

7.MouseEvent

การใช้งาน : เมื่อต้องการใช้งาน คลิ๊ก(clicked) เคลื่อนที่(moved) ลากวาง(dragged) โดยใช้ได้กับ JButton JCheckboc, JScrollPane, JTextField เป็นต้น

อินเตอร์เฟซ : MouseListener

เมท็อด : mousePressed(MouseEvent) กดค้างไว้, mouseReleased(MouseEvent) ปล่อยเมาส์, mouseClicked(MouseEvent) คลิ๊กเมาส์

8.MouseMotionEvent

การใช้งาน : คล้ายกับ 7

อินเตอร์เฟซ : MouseMotionListener

เมท็อด : mouseDragged(MouseEvent), mouseMoved(MouseEvent),

การใช้งาน

            ขั้นแรกต้องรู้ก่อนว่าต้องการให้คอมโพเนนท์ใดทำงาน เช่น ง่ายๆและใช้บ่อยๆเลยก็คือปุ่ม(JButton) ก็ต้องนึกต่อไปอีกว่าจะให้ปุ่มทำงานอะไรได้ ก็เช่นคลิ๊กได้หรือกด Enter ก็ได้ด้วย

            ขั้นต่อมาก็ให้มาดูที่อีเวนต์ว่าว่ามีอีเวนต์ตัวไหนที่สามารถทำให้ปุ่มทำงานตามที่ต้องการได้บ้าง ให้เลือกให้เข้าคู่ถูกต้องกับการทำงาน

            ขั้นตอนการเรียกใช้อีเวนต์เป็นดังนี้

-          สร้างตัวแปรอ็อปเจ็คของคอมโพเนนท์(สร้างอยู่แล้วอัตโนมัติ ถ้าสร้างจาก WindowBuilder)

-          ให้อ็อปเจ็คนั้นเรียกเมท็อดที่ชื่อaddตามด้วยชื่อของอินเตอร์เฟส addxxxx(parameter) เช่น addActionListener

-          ภายในพารามิเตอร์ให้สร้าง anonymous inner class ของอินเตอร์เฟสและ อิมพลีเมนต์ เมท็อดของอินเตอร์เฟสให้ทำงานตามที่ต้องการ(จริงๆใช้งานได้หลายแบบแต่ที่นี้จะใช้แบบ anonymous inner classเพราะสามารถ generate ได้อัตโนมัติ)

แต่พูดไปแล้วอาจจะงงต้องลองดูตัวอย่างโครงสร้าง ซึ่งจะออกมาลักษณะนี้

ชื่อคลาสคอมโพเนนท์ ชื่อตัวแปรอ็อปเจ็ค = new ชื่อคลาสคอมโพเนนท์ ("text");

                        ชื่อตัวแปรอ็อปเจ็ค.addอินเตอร์เฟส(new ชื่ออินเตอร์เฟส() {

                                    public void ชื่อเมท็อด(พารามิเตอร์แบบอ็อปเจ็ค) {

                                               

                                                           

                                    }

                        });

                        ชื่อตัวแปรอ็อปเจ็ค.setBounds(x, y, width, height);

                        contentPane.add(ชื่อตัวแปรอ็อปเจ็ค);

x, y คือตำแหน่งตามแนวแกน x และ y , width, heightคือขนาดกว้างสูง

แต่การเขียนโค๊ตเหล่านี้ก็ไม่จำเป็นเพราะ WindowBuilder สามารถ generate ให้ได้อัตโนมัติอีกเช่นเดียวกัน แต่สิ่งควรรู้คือตำแหน่งสำหรับการ อิมพลีเมนท์เมท็อด

วิธีจัดการอีเวนต์ด้วย WindowBuilder

1.      เอาเมาส์ชี้ไปที่คอมโพเนนท์ที่ต้องการจัดการกับอีเวนต์ จากนั้นให้คลิ๊กขวา จะมีคำว่า Add event handler ให้เลือกอันนี้

 


รูป17-1

เมื่อเลือกที่ Add event handlerจะปรากฏให้เลือกมาต้องการทำอะไร ใช้เมท็อดอะไรดังรูป

 


รูป17-2

เมื่อเลือกให้ทำอะไรแล้วโค๊ตก็จะมาปรากฏในหน้า source

 


รูป17-3

ตัวอย่างการใช้งาน

จะสาธิตตัวอย่างการใช้งานอย่างง่ายที่สุดนั่นคือ จะเขียนโปรแกรมให้ผู้ใช้กรอกข้อความเข้ามา จากนั้นให้มี JDialog ทักทายตอบออกไป

เริ่มจากสร้าง GUI สำหรับช่องกรอกชื่อ และปุ่มสำหรับ Enter

 


รูป17-4

จัดการกับอีเวนต์ของปุ่ม Enter ด้วย ActionListener

 

 


รูป17-5

ทำการอิมพลีเมนท์เมท็อด actionPerformed  ด้วยการให้แสดง JDialog ออกมาเมื่อมีการคลิ๊กหรือ Enter ที่ปุ่มนี้ โดยให้แสดงข้อความ Hello แล้วตามด้วยชื่อที่ผู้ใช้ได้หรอกเข้ามาโดย getText() มาจากช่อง JTextField ที่สร้างไว้

 


รูป17-6

ผลลัพธ์ที่ได้ คือเมื่อกดปุ่มจะมี Dialog ขึ้นมา ถ้าไม่ทำการจัดการกับอีเวนต์เวลากดปุ่มก็จะไม่ได้เกิดอะไร

 


รูป 17-7

 



แผนผังการเรียนเขียนโปรแกรม