Your SlideShare is downloading. ×

Java-Chapter 14 Creating Graphics with DWindow

1,701

Published on

Chapter 14 Creating Graphics with DWindow

Chapter 14 Creating Graphics with DWindow

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,701
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
110
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ANSWER : Creating Graphics with DWindow - 14 Computer Programming using Java 211 CHAPTER การสร้างกราฟกด้วยดีวินโดว์ ิ 14 (Creating Graphics with DWindow)1. ความร้ ูเบืองต้ นเกี่ยวกับดีวนโดว์ (Introduction to DWindow) ้ ิ1. ลักษณะของดีวินโดว์ 1) ดีวินโดว์ (DWindow) เป็ นคลาสคลาสหนึ่งในซอฟต์แวร์ เจแลป (JLab) ที่สร้ างขึ ้นเพื่อใช้ อํานวยความสะ- ดวกในการประมวลผลทางด้ านกราฟิ กของภาษาจาวา 2) ดีวินโดว์ถกพัฒนาโดย รศ.ดร.สมชาย ประสิทธิ์จูตระกูล ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรม- ู ศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย ซึงเป็ นคนเดียวกับผู้ที่พฒนาเจแลป ่ ั 3) ดีวินโดว์ใช้ งานได้ เฉพาะในเจแลปเท่านัน ไม่สามารถใช้ งานร่วมกับซอฟต์แวร์ อื่นๆ ได้ ้ 4) ตัวอย่างการทํางานของดีวินโดว์ เช่น ลากเส้ นตรง วาดสี่เหลี่ยม วาดวงรี อ่านภาพจากแฟ้ มภาพมาแสดง บนวินโดว์ ขอแผนที่จดภาพของภาพที่ปรากฏบนวินโดว์ไปประมวลผล เป็ นต้ น ุ2. การเรียกใช้ งานดีวินโดว์ 1) ก่อนเรี ยกใช้ งานดีวินโดว์ ให้ นําเข้ าคลาส DWindow โดยใช้ คําสัง import ่ jlab.graphics.DWindow; ไว้ ที่หวคลาสที่จะประมวลผลเสมอ ดังตัวอย่างต่อไปนี ้ ั 1 import jlab.graphics.DWindow; 2 ... 3 public class TestDWindow { 4 public static void main(String [] args) { 5 ... 6 } 7 } 2) ทําการสร้ างดีวินโดว์โดยการ new (เหมือนการ new อ๊ อบเจ็คทัวไป) ่ 1 import jlab.graphics.DWindow; 2 public class TestDWindow { 3 public static void main(String [] args) { 4 DWindow w = new DWindow(…); 5 } 6 } 3) มุมบนสุดทางซ้ ายของวินโดว์มีพิกด (x, y) เป็ น (0, 0) โดยที่คาพิกด x จะเพิ่มขึ ้นเมื่อไปทางขวา ในขณะที่ ั ่ ั ค่าพิกด y จะเพิ่มขึ ้นเมื่อลงด้ านล่าง ั DWindow x พิกด (0, 0) ั y© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 2. 212 Computer Programming using Java 14 - Creating Graphics with DWindow : ANSWER 2. รายละเอียดของคลาสดีวนโดว์ (DWindow Class) ิ (อ้างอิ งจากหนังสือ“เริ่ มเรี ยนเขี ยนโปรแกรม: ฉบับวาจาจาวา” แต่งโดย รศ.ดร.สมชาย ประสิ ทธิ์ จูตระกล, 2552) ู 1. ตัวแปรประจําคลาส (Class Variables) รายละเอียดของตัวแปร คําอธิบาย static int BLACK ค่า RGB ของสีดํา static int BLUE ค่า RGB ของสีนํ ้าเงิน static int BROWN ค่า RGB ของสีนํ ้าตาล static int CYAN ค่า RGB ของสีฟา ้ static int GRAY ค่า RGB ของสีเทา static int GREEN ค่า RGB ของสีเขียว static int MAGENTA ค่า RGB ของสีมวงแดง ่ static int ORANGE ค่า RGB ของสีส้ม static int PINK ค่า RGB ของสีชมพู static int PURPLE ค่า RGB ของสีมวงอ่อน ่ static int RED ค่า RGB ของสีแดง static int SILVER ค่า RGB ของสีเงิน static int VIOLET ค่า RGB ของสีมวง ่ static int WHITE ค่า RGB ของสีขาว static int YELLOW ค่า RGB ของสีเหลือง 2. ตัวสร้ าง (Constructors) รายละเอียดของตัวสร้ าง และคําอธิบาย DWindow() . ตัวสร้ างวินโดว์ที่มีขนาด 200 x 200 DWindow(double width, double height) . ตัวสร้ างวินโดว์ที่มีขนาด width x height 3. เมท็อด (Methods) รายละเอียดของเมท็อด และคําอธิบาย void clearBackground(). ล้ างภาพที่ปรากฏบนวินโดว์ออกให้ หมด แล้ วแสดงสีพื ้นหลังที่ได้ ตงไว้ ั้ void draw(DImage img, double xc, double yc) . วาดรูปภาพ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 3. ANSWER : Creating Graphics with DWindow - 14 Computer Programming using Java 213 รายละเอียดของเมท็อด และคําอธิบาย void drawEllipse(double xc, double yc, double w, double h) . วาดเส้ นขอบของวงรี void drawEllipse(int c, double xc, double yc, double w, double h) . วาดเส้ นขอบของวงรี แบบระบุสี void drawLine(double x1, double y1, double x2, double y2) . ลากเส้ นตรงบนวินโดว์ void drawLine(int c, double x1, double y1, double x2, double y2) . ลากเส้ นตรงบนวินโดว์ แบบระบุสี void drawRect(double x, double y, double w, double h) . วาดเส้ นขอบของสี่เหลี่ยมผืนผ้ า void drawRect(int c, double x, double y, double w, double h) . วาดเส้ นขอบของสี่เหลี่ยมผืนผ้ า แบบระบุสี void drawString(String s, double size, double x, double y) . แสดงสตริงบนวินโดว์ void drawString(int c, String s, double size, double x, double y) . แสดงสตริงบนวินโดว์ แบบระบุสี void fade(double level) . ทําทุกจุดภาพบนวินโดว์ในจางลง void fillEllipse(double xc, double yc, double w, double h) . วาดวงรี ทบ ึ void fillEllipse(int c, double xc, double yc, double w, double h) . วาดวงรี ทบ แบบระบุสี ึ void fillRect(double x, double y, double w, double h) . วาดสี่เหลี่ยมผืนผ้ าทึบ void fillRect(int c, double x, double y, double w, double h) . วาดสี่เหลี่ยมผืนผ้ าทึบ แบบระบุสี static int getB(int c) . คืนค่าของแม่สีนํ ้าเงินของสี c มีคาระหว่าง 0 ถึง 255 ่ static int getG(int c) . คืนค่าของแม่สีเขียวของสี c มีคาระหว่าง 0 ถึง 255 ่© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 4. 214 Computer Programming using Java 14 - Creating Graphics with DWindow : ANSWER รายละเอียดของเมท็อด และคําอธิบาย int getHeight(). คืนความสูงของวินโดว์ DPoint getMouse(). คืนพิกดของตัวชี ้เมาส์บนวินโดว์ ั int[][] getPixmap(). คืนแผนที่จดภาพของวินโดว์ ุ static int getR(int c) . คืนค่าของแม่สีแดงของสี c มีคาระหว่าง 0 ถึง 255 ่ int getWidth(). คืนความกว้ างของวินโดว์ void loadImage(String fileName) . อ่านแฟมภาพมาแสดงบนวินโดว์ ปรับขนาดวินโดว์ตามขนาดภาพ ้ void loadImage(String fileName, double w, double h) . อ่านแฟมภาพมาแสดงบนวินโดว์ ปรับขนาดของภาพและวินโดว์ให้ เป็ น wxh ้ static int mixRGB(double r, double g, double b) . คืนค่าสีที่ได้ จากการผสมแม่สีแดง เขียว นํ ้าเงิน static int mixRGB(double a, double r, double g, double b) . คืนค่าสีที่ได้ จากการผสมแม่สีแดง เขียว นํ ้าเงิน และค่าอัลฟา void onMouseDragged(DPoint p) . ระบบเรี ยกเมท็อดนี ้ให้ อตโนมัตเิ มื่อมีการลากเมาส์บนวินโดว์นี ้ ั void onMouseMoved(DPoint p) . ระบบเรี ยกเมท็อดนี ้ให้ อตโนมัตเิ มื่อมีการเลื่อนเมาส์บนวินโดว์นี ้. ั static int randomColor(). คืนค่าสีสมๆ ุ่ void saveImage(String fileName) . บันทึกภาพบนวินโดว์ลงในแฟ้ มภาพ void setBackground(int c) . ตังสีพื ้นหลังของวินโดว์ ้ void setForeground(int c) . ตังสีที่ใช้ ในการวาดบนวินโดว์ ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 5. ANSWER : Creating Graphics with DWindow - 14 Computer Programming using Java 215 รายละเอียดของเมท็อด และคําอธิบาย void setPixmap(int[][] p) . แสดงภาพใหม่บนวินโดว์ตามแผนที่จดภาพ p ที่ได้ รับ ุ void setRepaintDuringSleep(boolean enable) . ตังให้ วนโดว์แสดงภาพขณะ sleep หรื อไม่ ้ ิ void setSize(int width, int height) . ตังขนาดของวินโดว์ ้ void sleep(long millis) . สังให้ หยุดการทํางานชัวขณะ ่ ่ DPoint waitForMouseClicked(). รอจนกว่าจะมีการคลิกเมาส์โจทย์ ข้อที่ 1 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาให้ สมบรณ์ เพื่อใช้ คลาส DWindow สร้ างวิน- ูโดว์ ขนาด 300 x 200 ซึ่งภายในมีลูกบอลหนึ่งลกสีแดงที่มีรั ศมี 25 Pixels โดยมีจุดเริ่มต้ นที่จุดตรงกลาง ูของวินโดว์ พร้ อมทังให้ ลูกบอลเด้ งตามกรอบของวินโดว์ ไปเรื่ อยๆ โดยไปทางแกน x ครั งละ 2 Pixels ้ ้และไปทางแกน y ครั งละ 1 Pixels และกําหนดให้ ค่า fade เป็ น 0.5 และในการเปลี่ยนตําแหน่ งหรื อ ้เคลื่อนที่แต่ ละครังจะให้ มีการหลับ (Sleep) ครังละ 10 msec โดยโปรแกรมจะทํางานไปเรื่ อยๆ จนกว่ าจะ ้ ้หยุดโปรแกรม (15 คะแนน)import jlab.graphics.DWindow;public class TestBall { public static void main(String[] args) { //สร้ างวินโดว์ ขนาด 300 x 200 //กําหนดให้ ตวแปร x และ y เก็บตําแหน่ งกึ่งกลางของวินโดว์ และให้ ตวแปร r เก็บค่ ารัศมีของลกบอล ั ั ู //กําหนดให้ ตวแปร dx และ dy มีค่าเท่ ากับจํานวน Pixels ที่จะเคลื่อนเปลี่ยนตําแหน่ งต่ อหนึ่งครัง ั ้ ในแกน x และแกน y ตามลําดับ© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 6. 216 Computer Programming using Java 14 - Creating Graphics with DWindow : ANSWER while (true) { //กําหนดค่ า fade เป็ น 0.5 //สร้ างลกบอลหนึ่งลกตามข้ อกําหนดข้ างต้ น ู ู //คําสั่งในการเปลี่ยนตําแหน่ งของลกบอล (ลกบอลเคลื่ อนที่) โดยจะต้ องมีการตรวจสอบว่ าลก ู ู ู บอลชนผนังของวินโดว์ หรื อไม่ ถ้ าชนให้ มีการเด้ งกลับเสมอ //คําสั่งหลับ 10 msec เพื่อให้ กับทํางานหยุดชั่วขณะ } //End of while } //End of main } //End of class โจทย์ ข้อที่ 2 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาให้ สมบรณ์ เพื่อใช้ คลาส DWindow สร้ างวินโดว์ ขนาด 250 x ู 200 ซึ่งภายในมีลูกบอล 50 ลกแบบหลากสี (สุ่ มเลือกสี) ที่มี ู รั ศมี 5 Pixels โดยทุกลกจะมีจุดเริ่ มต้ นที่จุดตรงกลางของ ู วินโดว์ และลกบอลทุกลกจะเด้ งตามกรอบของวินโดว์ โดย ู ู เคลื่อนที่ไปตามแกน x และแกน y แบบสุ่ม ซึ่งกําหนดให้ ค่า fade เป็ น 0.3 และในการเคลื่อนที่แต่ ละครั งจะให้ มีการ ้ หลับ (Sleep) ครั งละ 20 msec โดยโปรแกรมจะทํางานไป ้ เรื่อยๆ จนกว่ าจะหยุดโปรแกรม (20 คะแนน) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 7. ANSWER : Creating Graphics with DWindow - 14 Computer Programming using Java 217import jlab.graphics.DWindow;public class TestMultiBalls { public static void main(String[] args) { //สร้ างวินโดว์ ขนาด 250 x 200 //กําหนดให้ อาเรย์ x และ y เก็บตําแหน่ งกึ่งกลางวินโดว์ ของลกบอลแต่ ละลก ู ู //กําหนดให้ อาเรย์ r เก็บรัศมีของลกบอลแต่ ละลก ู ู //กําหนดให้ อาเรย์ dx และ dy เก็บค่ า Pixel ที่ใช้ ในการเคลื่อนที่ของลกบอลแต่ ละลก โดยใช้ การ ู ู สุ่มตัวเลขระหว่ าง -4 ถึง 4 //กําหนดให้ อาเรย์ c เก็บค่ าสีของลกบอลแต่ ละลกโดยการสุ่มแม่ สีขึนมาแล้ วผสมให้ เป็ นสีเดียวกัน ู ู ้ while (true) { //กําหนดค่ า fade เป็ น 0.3 //สร้ างลกบอล 50 ลก พร้ อมทังกําหนดค่ าต่ างๆ ข้ างต้ นให้ กับลกบอลแต่ ละลก และให้ ลูกบอล ู ู ้ ู ู เคลื่อนที่ไปตามแนวแกน x และ y ตามค่ า dx และ dy ของลกบอลแต่ ละลก ู ู© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 8. 218 Computer Programming using Java 14 - Creating Graphics with DWindow : ANSWER //คําสั่งหลับ 20 msec เพื่อให้ กับทํางานหยุดชั่วขณะ } //End of while } //End of main } //End of class โจทย์ ข้อที่ 3 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาให้ สมบรณ์ เพื่อสร้ างคลาส Flag ที่ไว้ สําหรั บสร้ าง ู ธงชาติของประเทศต่ างๆ และคลาส NationalFlag เพื่อเรี ยกใช้ งานคลาส Flag ซึ่งมีรายละเอียดดังต่ อ ไปนี ้ (25 คะแนน) คลาส Flag (15 คะแนน) 1) แอตทริบวประจําอ๊ อบเจ็คแบบ private ชนิด DWindow ชื่อ w ิ 2) ตัวสร้ างแบบไม่ มีพารามิเตอร์ เพื่อกําหนดค่ าวินโดว์ ให้ มีขนาด 200 x 150 3) ตัวสร้ างแบบ 2 พารามิเตอร์ ท่ เป็ นจํานวนจริง เพื่อกําหนดค่ าวินโดว์ ให้ มีขนาดตามที่ระบุ ี 4) ตัวสร้ างแบบ 1 พารามิเตอร์ ท่ เป็ นชนิด DWindow เพื่อกําหนดค่ าวินโดว์ ให้ เท่ ากับ DWindow ที่ระบุ ี 5) เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ thailand(…) เพื่อแสดงธงชาติไทยขึนบนวินโดว์ ้ 6) เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ japan(…) เพื่อแสดงธงชาติญ่ ีปุ่นขึนบนวินโดว์ ้ 7) เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ germany(…) เพื่อแสดงธงชาติเยอรมันขึนบนวินโดว์ ้ 8) เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ france(…) เพื่อแสดงธงชาติฝรั่ งเศสขึนบนวินโดว์ ้ 9) เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ italy(…) เพื่อแสดงธงชาติอตาลีขึนบนวินโดว์ ิ ้ 10) เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ danmark(…) เพื่อแสดงธงชาติเดนมาร์ กขึนบนวินโดว์ ้ 11) เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ unitedarab(…) เพื่อแสดงธงชาติสหรั ฐอาหรั บเอมิ เรตส์ ขึนบนวินโดว์ ้ คลาส NationalFlag (10 คะแนน) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 9. ANSWER : Creating Graphics with DWindow - 14 Computer Programming using Java 2191) เมท็อด main(…) ที่สร้ างอาเรย์ ของอ๊ อบเจ็คชนิด Flag ใช้ แทนธงชาติของแต่ ละประเทศ ที่ประกอบ ไปด้ วย 7 ประเทศที่กล่ าวมา โดยมีขนาดของวินโดว์ เป็ น 150 x 90 พร้ อมกําหนดให้ แต่ ละอ๊ อบเจ็ค แสดงภาพธงชาติของแต่ ละประเทศขึนบนวินโดว์ ้//คลาส Flag© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 10. 220 Computer Programming using Java 14 - Creating Graphics with DWindow : ANSWER //คลาส NationalFlag © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 11. ANSWER : Creating Graphics with DWindow - 14 Computer Programming using Java 221โจทย์ ข้อที่ 4 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาให้ สมบรณ์ เพื่อสร้ างคลาส TrafficSign ที่แทน ูปายสัญญาณจราจร และคลาส TestTrafficSign เพื่อเรี ยกใช้ งานคลาส TrafficSign ซึ่งมีรายละ ้เอียดดังต่ อไปนี ้ (20 คะแนน)1) คลาส TrafficSign มีรายละเอียดดังต่ อไปนี ้ (15 คะแนน)import jlab.graphics.DWindow;public class TrafficSign { //แอตทริบวประจําอ๊ อบเจ็คแบบ private ชนิด DWindow ชื่อ w ิ //ตัวสร้ างแบบไม่ มีพารามิเตอร์ เพื่อกําหนดให้ วินโดว์ มีขนาดเป็ น 100 x 200 และมีสีพืนหลังเป็ นสีดา ้ ํ //เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ showRed(…) เพื่อแสดงสัญญาณไฟแดงขึนบนวินโดว์ ้ และปรับสัญญาณไฟอื่นๆ ให้ เป็ นสีจาง (fade = 0.8) //เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ showYellow(…) เพื่อแสดงสัญญาณไฟเหลืองขึนบน ้ วินโดว์ และปรับสัญญาณไฟอื่นๆ ให้ เป็ นสีจาง (fade = 0.8)© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 12. 222 Computer Programming using Java 14 - Creating Graphics with DWindow : ANSWER //เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ showGreen(…) เพื่อแสดงสัญญาณไฟเขียวขึนบน ้ วินโดว์ และปรั บสัญญาณไฟอื่นๆ ให้ เป็ นสีจาง (fade = 0.8) //เมท็อดประจําอ๊ อบเจ็คแบบ public void ชื่อ sleep(…) ที่รับพารามิเตอร์ เป็ นจํานวนเต็ม 1 ค่ า เพื่อทําให้ วินโดว์ หยุดการทํางานชั่วขณะ } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 13. ANSWER : Creating Graphics with DWindow - 14 Computer Programming using Java 2232) คลาส TestTrafficSign มีรายละเอียดดังต่ อไปนี ้ (5 คะแนน)import jlab.graphics.DWindow;public class TestTrafficSign { public static void main(String[] args) { //สร้ างอ๊ อบเจ็คชื่อ t ที่มีชนิดเป็ น TrafficSign //เขียนคําสั่งเพื่อวนแสดงไฟสัญญาณจราจร โดยให้ แสดงเรียงตามลําดับตังแต่ ไฟแดง ไฟเหลือง ้ และไฟเขียว โดยให้ มีการหยุดเว้ นช่ วงครังละ 2000 msec ้ } //End of main} //End of classโจทย์ ข้อที่ 5 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาให้ สมบรณ์ เพื่อสร้ างคลาส Grade ที่ใช้ อ่านแฟม ู ้ข้ อมลผลการเรี ยนของรายวิชาหนึ่งๆ เข้ ามา แล้ วทําการนับจํานวนผลการเรี ยนในแต่ ละระดับ พร้ อมทัง ู ้แสดงผลออกมาในรปของกราฟแท่ ง และสร้ างคลาส TestGrade เพื่อเรี ยกใช้ งานคลาส Grade ซึ่งมีราย ูละ เอียดดังต่ อไปนี ้ (30 คะแนน)import jlab.graphics.DWindow;import java.util.Scanner;import java.io.*;public class Grade { //แอตทริบวประจําอ๊ อบเจ็คชนิด Scanner ชื่อ file ิ //ตัวสร้ างที่รับพารามิเตอร์ 1 ตัวชนิดสตริงที่เป็ นชื่อแฟมข้ อมล เพื่อใช้ สาหรับเปิ ดแฟมข้ อมลนัน ้ ู ํ ้ ู ้© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 14. 224 Computer Programming using Java 14 - Creating Graphics with DWindow : ANSWER //ตัวสร้ างที่รับพารามิเตอร์ 1 ตัวชนิด File ที่เป็ นแฟมข้ อมลใดๆ เพื่อใช้ สาหรับเปิ ดแฟมข้ อมลนัน ้ ู ํ ้ ู ้ //เมท็อดประจําอ๊ อบเจ็คแบบ public ชื่อ countGrade(…) เพื่อใช้ นับจํานวนผลการเรี ยนแต่ ละระดับ ของรายวิชาหนึ่งๆ จากแฟมข้ อมล พร้ อมทังคืนค่ ากลับ (คืนค่ าเป็ นอาเรย์ ) ้ ู ้ 53300121 A 53300221 D+ ตัวอย่างแฟมข้ อมูล ้ 53300321 F ... //เมท็อดประจําอ๊ อบเจ็คแบบ public ชื่อ findMax(…) รับพารามิเตอร์ 1 ตัวที่เป็ นอาเรย์ ท่ ได้ จากการ ี นับผลการเรียนแต่ ละระดับ เพื่อหาค่ าผลการเรี ยนที่มีมากที่สุดจากระดับผลการเรียนทังหมด 8 ระดับ ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 15. ANSWER : Creating Graphics with DWindow - 14 Computer Programming using Java 225 //เมท็อดประจําอ๊ อบเจ็คแบบ public ชื่อ showBarGraph(…) เพื่อใช้ แสดงผลการนับระดับผลการ เรี ยนทัง 8 ระดับในรปแบของกราฟแท่ ง ขึนบนวินโดว์ ดังตัวอย่ างผลลัพธ์ ต่อไปนี ้ ้ ู ้ //เมท็อดประจําอ๊ อบเจ็คแบบ public ชื่อ close(…) เพื่อปิ ดแฟมข้ อมล ้ ู} //End of class© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 16. 226 Computer Programming using Java 14 - Creating Graphics with DWindow : ANSWER import java.util.Scanner; import java.io.*; public class TestGrade { public static void main(String[] args) throws IOException { //สร้ างอ๊ อบเจ็คจากคลาส Grade โดยเปิ ดอ่ านแฟมข้ อมล "d:/data.txt" พร้ อมทังคํานวนหา ้ ู ้ จํานวนผลการเรี ยนในแต่ ละระดับ และแสดงผลลัพธ์ ในรปแบบของกราฟแท่ งให้ สวยงาม ู } //End of main } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้

×