110 likes | 316 Views
บทที่ 19. รู้จัก และใช้งาน Applet. รู้จักและใช้งาน Applet. โปรแกรม ที่เขียนด้วยภาษา Java ถูกออกแบบให้ประมวลผล ผ่านเว็บบราวเซอร์ ได้ โดยสร้าง คลาสที่สืบทอดคุณสมบัติมาจากคลาส Applet ซึ่งอยู่ ใน แพ็คแกจ java.applet
E N D
บทที่ 19 รู้จักและใช้งาน Applet
รู้จักและใช้งาน Applet • โปรแกรมที่เขียนด้วยภาษา Java ถูกออกแบบให้ประมวลผลผ่านเว็บบราวเซอร์ได้ • โดยสร้างคลาสที่สืบทอดคุณสมบัติมาจากคลาส Applet ซึ่งอยู่ในแพ็คแกจjava.applet • และกำหนด access modifier ให้เป็นแบบ public เพื่อให้เรียกใช้งานผ่านเว็บบราวเซอร์ได้ มีรูปแบบการใช้งานดังนี้ import java.applet.*; public class AppletName extends Applet { } โดยที่ AppletNameเป็นชื่อคลาส
กระบวนการหลักของการสร้าง Applet • การสร้าง Appletเริ่มต้นสร้างจากคลาส Appletซึ่งมีส่วนของโปรแกรมเหมือนกับการเขียน Java Application ทั่วไป • จากนั้นเรียกใช้ Applet ที่สร้างขึ้นนี้ โดยนำชื่อไฟล์ไปแทรกในส่วนของคำสั่ง HTML
การส่งค่าตัวแปรจากไฟล์ HTML เข้าไปใช้ในคลาส Applet • สามารถส่งไปพร้อมกับการเรียกใช้หรือประมวลผลในคลาส Applet ที่ต้องการได้ โดยตัวแปรดังกล่าวจะต้องถูกเขียนแทรกอยู่ใน tag ของ <applet> และ </applet> ซึ่งมีรูปแบบดังนี้ <applet code="AppletName.class" width=" widthValue" height="heightValue"> <param name=”paramName1” value=”paramValue1”> <param name=”paramName2” value=”paramValue2”> </applet> โดยที่ AppletNameเป็นชื่อคลาส paramName1 เป็นชื่อตัวแปรที่ใช้ส่งค่าตัวที่ 1 paramName2 เป็นชื่อตัวแปรที่ใช้ส่งค่าตัวที่ 2 paramValue1 เป็นค่าตัวแปรที่ใช้ส่งค่าตัวที่ 1 paramValue2 เป็นค่าตัวแปรที่ใช้ส่งค่าตัวที่ 2 widthValueเป็นค่าความกว้าง heightValue เป็นค่าความสูง • ในคลาส Applet จะรับค่าที่ส่งผ่านตัวแปรในไฟล์ HTML ด้วยเมธอด getParameter(paraname) โดยparanameต้องเป็นชื่อที่ตรงกับชื่อตัวแปรในไฟล์ HTML ด้วย ดังตัวอย่างต่อไปนี้
เมธอดวาดรูปทรงต่างๆ และการระบายสี (1) • กำหนดให้ g เป็นตัวแปรประเภท Graphics • เมธอด drawString()แสดงข้อความ s ที่ตำแหน่ง x, y g.drawString(s,x,y); • เมธอด drawLine()วาดเส้นที่จุดเริ่มต้น x1, y1 และจุดสิ้นสุด x2, y2 g.drawLine(x1,y1,x2,y2); • เมธอด drawRect()วาดสี่เหลี่ยมมุมแหลมแบบโปร่งที่ตำแหน่ง x, yกว้างเท่ากับ w และสูงเท่ากับh g.drawRect(x,y,w,h); • เมธอด drawRoundRect()วาดสี่เหลี่ยมมุมมนแบบโปร่งที่ตำแหน่ง x, yกว้างเท่ากับ wและสูงเท่ากับ h โดยมีความกว้างของสี่เหลี่ยมที่กำหนดขนาดมุมมนเท่ากับ arc_w และความสูงของสี่เหลี่ยมที่กำหนดขนาดมุมมนเท่ากับ arc_h g.drawRoundRect(x,y,w,h,arc_w,arc_h);
เมธอดวาดรูปทรงต่างๆ และการระบายสี (2) • เมธอด drawOval()วาดวงกลมหรือวงรีแบบโปร่งที่ตำแหน่ง x, yกว้างเท่ากับ w และสูงเท่ากับh g.drawOval(x,y,w,h); • เมธอด drawArc()วาดเส้นโค้งแบบโปร่งที่ตำแหน่ง x, yกว้างเท่ากับ w และสูงเท่ากับ h โดยมีมุมจุดเริ่มของส่วนของวงกลมหรือวงรีเท่ากับ a1 และขนาดของมุมวัดตั้งแต่จุดเริ่มต้นของส่วนของวงกลมหรือวงรีไปจนถึงจุดสิ้นสุดเท่ากับ a2 g.drawArc(x, y, w, h, a1, a2); • เมธอด fillRect()วาดสี่เหลี่ยมทึบที่ตำแหน่ง x, y ซึ่งมีความกว้างเท่ากับ w และความสูงเท่ากับh g.fillRect(x,y,w,h); • เมธอด fillRoundRect()วาดสี่เหลี่ยมมุมมนทึบที่ตำแหน่ง x, yกว้างเท่ากับ w และสูงเท่ากับ h โดยมีความกว้างของสี่เหลี่ยมที่กำหนดขนาดมุมมนเท่ากับ arc_w และความสูงของสี่เหลี่ยมที่กำหนดขนาดมุมมน เท่ากับ arc_h g.fillRoundRect(x,y,w,h,arc_w,arc_h); • เมธอด fillOval()วาดวงรีทึบที่ตำแหน่ง x, yกว้างเท่ากับ w และสูงเท่ากับh g.fillOval(x,y,w,h); • เมธอด fillArc()วาดรูปเสี้ยวที่ตำแหน่ง x, yกว้างเท่ากับ w และสูงเท่ากับ h โดยมีมุมจุดเริ่มของส่วนของวงกลมหรือวงรีเท่ากับ a1 และขนาดของมุมวัดตั้งแต่จุดเริ่มต้นของส่วนของวงกลมหรือวงรีไปจนถึงจุดสิ้นสุด เท่ากับ a2 g.fillArc(x, y, w, h, a1, a2);
โปรแกรมวาดรูปทรงและแสดงผลข้อความโดยการใช้สีแบบต่างๆโปรแกรมวาดรูปทรงและแสดงผลข้อความโดยการใช้สีแบบต่างๆ g.drawOval(50, 110, 100, 30); g.drawString("drawOval", 70, 130); g.setColor(Color.black); g.fillOval(50, 145, 100, 30); g.setColor(Color.white); g.drawString("fillOval", 80, 165); g.setColor(Color.red); g.drawArc(10, 28, 180, 180, 180, 180); g.drawString("drawArc2", 70, 195); c = new Color(0, 78, 152); g.setColor(c); g.fillOval(200, 75, 90, 90); g.setColor(Color.white); g.drawString("fillCircle", 222, 115); g.drawString("(0,78,152)", 215, 135); c = new Color(64, 0, 128); g.setColor(c); g.fillArc(300, 20, 180, 180, 0, 90); g.setColor(Color.white); g.drawString("(64,0,128)", 300, 25); c = new Color(255, 132, 9); g.setColor(c); g.fillArc(300, 20, 180, 180, 90, 90); g.setColor(Color.white); g.drawString("(255,132,9)", 420, 25); g.setColor(Color.yellow); g.fillArc(300, 20, 180, 180, 180, 90); g.setColor(Color.red); g.fillArc(300, 20, 180, 180, 270, 90); g.setColor(Color.white); g.drawString("fillArc", 370, 215); } } import java.applet.*; import java.awt.*; public class ColorfulShape extends Applet { Font fn; Color c; public void init() { setBackground(Color.lightGray); fn = new Font("Tahoma", Font.BOLD, 12); } public void paint(Graphics g) { g.setFont(fn); g.setColor(Color.yellow); g.drawArc(10, 20, 180, 180, 0, 180); g.drawString("drawArc1", 70, 40); g.setColor(Color.magenta); g.drawRect(50, 50, 100, 15); g.drawString("drawRect", 70, 62); g.setColor(Color.blue); g.fillRect(50, 70, 100, 15); g.setColor(Color.white); g.drawString("fillRect", 80, 82); g.setColor(Color.green); <html> <head> <title>ColorfulShape</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <applet code="ColorfulShape.class" HEIGHT=220 WIDTH=500></applet> </body> </html>
ทำงานกับเมาส์และคีย์บอร์ดทำงานกับเมาส์และคีย์บอร์ด private class TextListener implements ActionListener { public void actionPerformed(ActionEvent e) { String ans = new String(msg.getPassword()); label2.setText("Your Message is " + ans); } } private class MyMouseListener implements MouseListener { public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { label2.setBackground(Color.red); } public void mouseExited(MouseEvent e) { label2.setBackground(Color.blue); } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { } } } import javax.swing.*; import java.applet.*; import java.awt.*; import java.awt.event.*; public class KeyMouseTest extends Applet { JLabel label1, label2; JPasswordFieldmsg; Font fn = new Font("Microsoft Sans Serif", Font.BOLD, 14); public void init() { setBackground(Color.cyan); label1 = new JLabel("Enter Message", SwingConstants.CENTER); label1.setPreferredSize(new Dimension(120, 25)); msg= new JPasswordField(10); label2 = new JLabel("Show Your Message Here", SwingConstants.CENTER); label2.setOpaque(true); label2.setBackground(Color.blue); label2.setForeground(Color.white); label2.setPreferredSize(new Dimension(200, 25)); label1.setFont(fn); msg.setFont(fn); label2.setFont(fn); add(label1); add(msg); add(label2); msg.addActionListener(new TextListener()); label2.addMouseListener(new MyMouseListener()); } <html> <head> <title>KeyMouseTest</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <applet code="KeyMouseTest.class" width="300" height="70"></applet> </body> </html>