Homework 02 - Trying out Event in GUI

การบ้านข้อที่ 1 (ฝึกการใช้ layout แทนการ setBounds)
เคยเล่นเกมโอลิมปิคมั้ย เป็นเกมที่ผู้เล่นต้องแข่งกันกดปุ่มรัวๆบนแป้นนินเทนโด ยิ่งรัว ตัวละครยิ่งวิ่งเร็ว คราวนี้ผมเลยเกิดไอเดีย ให้เราเขียนโปรแกรมวัดการกดรัวกัน (แต่จับเวลาต้องจับเองนะ) ให้มีหน้าตาแบบนี้ตอนเริ่มต้น


หรือ
แนะวิธีทำ
ให้โครงวินโดว์และปุ่มทั้งหลายขยายตามขนาดวินโดว์ ใช้วิธีนี้ดูนะ
การบ้านข้อที่ 2 (จัดการกับ error ใน textfield ของ Inventory Application)

ข้อนี้ทำต่อจากแล็บเลย ถ้าเรารันโปรแกรมในแล็บ จะสังเกตว่า ถ้าเราเกิดใส่อะไรก็ตามที่ไม่ใช่ตัวเลขลงไปในช่อง input เช่น

แล้วไปกด calculate จะปรากฏว่ามี error message เกี่ยวกับ java.lang.NumberFormatException ขึ้นที่ console เต็มไปหมด หรือถ้ากด Calculate ใน executable jar ก็จะไม่เกิดอะไรขึ้น นี่เป็นเพราะว่า เราคาดหวังว่าจะได้แต่สตริงที่แปลงเป็นตัวเลขได้ เข้ามาที่ input ถ้าแปลงไม่ได้ โปรแกรมก็ทำอะไรต่อไปไม่ได้นั่นเอง

งั้นเรามาเปลี่ยนแปลงโปรแกรมหน่อยดีกว่า โดย

แนะนำวิธีทำ
ข้อนี้เป็นการจัดการกับโค้ดตรงที่เราคิดว่าอาจเกิดปัญหา error หรือ ....Exception ในขณะที่รันอยู่ (error เพราะว่าแปลงเป็น integer ไม่ได้ )
วิธีการจัดการกับปัญหาประเภทนี้ คือ ตรงโค้ดที่เราสงสัย หรือคาดว่า จะเกิด error ขึ้นนั้น ให้เราเขียนครอบโค้ดส่วนนั้น
ด้วย  try block ดังตัวอย่างข้างล่างนี้

try{

// โค้ดส่วนที่ทำให้เกิด error

}catch (Exception e ){

//ถ้าเกิด error ขึ้นจริง โค้ดจะมาทำในนี้ ซึ่งในนี้จะเป็นส่วนที่เราเขียนโค้ดจัดการกับ error หรือเปิด dialog เตือนผู้ใช้
// โปรแกรมได้







พอทำเสร็จแล้ว ทำเป็น executable jar ทั้งสองไฟล์ไว้ แล้ว zip รวมกันส่ง
มาที่ progmethcp@gmail.com ภายในเที่ยงคืนวันอาทิตย์หลังจากที่ทำแล็บ 02   โดยในเมล์ subject ต้องเขียนเป็น studentId_hw02_secNumber และชื่อไฟล์จะต้องเป็น studentId_hw02_secNumber.zip   ตัวอย่างเช่น 5032117621_hw02_1.zip

studentID คือเลขประจำตัวนิสิต

secNumber คือเบอร์ตอนเรียน