Homework 01-Using set... methods
การบ้านข้อ 1 (มาแก้หน้าโปรแกรมนาฬิกาดิจิตอลกัน)
ก่อนอื่นโหลดไฟล์นี้มาก่อน
สร้างโปรเจ็คใหม่ แล้วลองรันไฟล์นี้ดูเลย เราจะพบว่า ได้วินโดว์แบบนี้
ซึ่งจริงๆ วินโดว์ที่ผมต้องการคือ แบบนี้
ดังนั้นนักเรียนจะต้องแก้ส่วนต่างๆต่อไปนี้ให้เป็นไปตามรูปที่ผมต้องการ
- timeJLabel ซึ่งเป็นตัวเขียนเลขนาฬิกา
- ให้เปลี่ยน text ให้เป็น "00:00:00"
- จัดตำแหน่งและความกว้างให้ได้ ไม่จำเป็นต้องเป๊ะ
- เปลี่ยนตัวอักษร "00:00:00" ให้เป็นสีขาว
- เปลี่ยน background ด้านหลังเป็นสีดำ
- amJRadioButton และ pmJRadioButton ภายใน ampmJPanel
- อ่านตรงนี้ก่อน:
JPanel เป็น เสมือนตัวเก็บ component อื่นๆของ user interface
เราสามารถสร้าง JPanel ขึ้นมา แล้วเอาปุ่มหรืออะไรต่างๆ ยัดใส่
เพื่อกรุ๊ปให้อยู่รวมกันใน JPanel นั้น โดยตำแหน่งของสิ่งต่างๆ ที่เอาใส่ JPanel จะอิงกับด้านซ้ายบนของ JPanel
- ให้ amJRadioButton มี text ที่เขียนว่า AM
- ให้ pmJRadioButton มี text ที่เขียนว่า PM
- จัดขนาดและความกว้างของ amJRadioButton และ pmJRadioButton ให้เหมาะสม ไม่ต้องเป๊ะเหมือนตัวอย่าง แต่ให้ดูโอเค ไม่น่าเกลียด
- สร้างจาร์ไฟล์ขึ้นมาให้เรียบร้อย สำหรับ execute ได้
ข้อสังเกต
จะเห็นว่า Radio Button นั้น เลือกติ๊กได้ทั้งคู่ ซึ่งจริงๆเราสามารถเลือกติ๊กแค่อันเดียวได้ แต่ยังไม่มีในแล็บนี้เท่านั้น ลองดู JRadioButton ใน Java API ดู
การบ้านข้อ 2 (มาจัดโค้ดหน้าโปรแกรมจำลองมือถือกัน)
ก่อนอื่นโหลดนี่ก่อน
เอาใส่โปรเจ็คใหม่แล้วรันดูเลย จะได้หน้าจอแบบนี้
จะเห็นว่ามันกุ้นๆ ทั้งนี้เพราะขนาดของ JPanel ที่เราเอาปุ่มใส่นั้นเล็กเกินไป ให้แก้โดยทำให้เป็นแบบนี้
โดย
- ขยาย JPanel ให้ได้ขนาดที่ถูกต้อง
- จัดตำแหน่งปุ่มต่างๆให้ถูกต้อง
- ทำเป็น executable jar ให้เรียบร้อย
การบ้านข้อ 3 (ตัวเล่นวิทยุ -- อันนี้ไม่ต้องส่ง แต่จะให้ดูตัวอย่าง component ต่างๆที่เอาใส่ในวินโดว์ได้)
โหลดนี่ซะ
แล้วลองรันดู จะได้โปรแกรมหน้าตาอย่างนี้ จะเห็นว่า Java มีอะไรให้ลองเล่นอีก ทั้งแถบเลื่อนได้ ที่เรียกว่า JSlider และ ช่องให้ติ๊กถูก ที่เรียกว่า JCheckBox
จะลองเล่นเปลี่ยนสีดูสนุกๆก็ได้ แต่ข้อนี้ไม่มีอะไร อยากให้เห็นว่ามี component หลายประเภทเท่านั้น
ข้อสังเกต
จะเห็นได้ว่า
การวางหน้าอินเตอร์เฟส เท่าที่โชว์ให้ดูนั้น เป็นการวางแบบตำแหน่งเป๊ะๆ
ซึ่งจะยากถ้าไม่มีเครื่องมือลากแปะ มีวิธีทำที่ง่ายกว่า
(ถ้าไม่มีเครื่องมือลากแปะ) คือการใช้คำสั้ง setLayout
ซึ่งจัดโครงอินเตอร์เฟสเป็นหน้าตาต่างๆได้ เอาหน้าตาต่างๆมาผสมกันก็ได้
พอจัดหน้าตาได้แล้ว ยัด component ต่างๆใส่ลงไป
ก็จะลงไปตามช่องว่างที่เว้นไว้ให้ตาม layout นั้นๆ
นับว่าช่วยให้สะดวกขึ้นมาก รวดเร็วขึ้นอย่างมาก
ดังนั้นต้องไปศึกษาทดลองดูนะ
วิธีส่งการบ้าน
เอา
executable jar ของข้อ 1 และ 2 ใส่รวมกันใน zip file แล้วส่งมาที่
progmethcp@gmail.com ภายในวันอาทิตย์ หลังจากวันพุธที่ทำแล็บ
ก่อนเที่ยงคืนนะ โดยในเมล์ subject ต้องเขียนเป็น
studentID_homework01_secNumber
studentID คือเลขประจำตัวนิสิต
secNumber คือเบอร์ตอนเรียน