1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu JAVA-6 pptx

25 417 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 260,53 KB

Nội dung

1 Chng 6 Applets Sau khi kết thúc chương này, bạn có thể nắm được các nội dung sau: Sau khi hoc xong chng nay, ban co thê nm đc cac nơi dung sau:  Hiêu đc cac Applet cua Java  Phân biêt applet va cac ng dung application  Tim hiêu chu trinh sơng cua mơt applet  Tao cac applet  Hiên thi cac hinh anh s dung applet  Trun tham sơ cho applet  Tim hiêu ng dung cua applet trong GUI 6.1 Java Applet Applet la mơt chng trinh Java co thê chay trong trinh dut web. Tât ca cac applet đêu la cac lp con cua lp ‘Applet’. Lp Applet thc package ‘java.applet’. Lp Applet bao gơm nhiêu phng thc đê điêu khiên qua trinh thc thi cua applet. ê tao applet, ban cân import hai goi sau:  java.applet  java.awt 6.2 Câu truc cua mơt Applet Mơt Applet đinh nghia câu truc cua no t 4 s kiên xay ra trong st qua trinh thc thi. ơi vi mơi s kiên, mơt phng thc đc goi mơt cach t đơng. Cac phng thc nay đc minh hoa trong bang 6.1 iêu quan trong la khơng phai luc nao applet cung bt đâu t ban đâu. Ma no bt đâu t vi tri tiêp theo cua qua trinh thc thi trc đo. Ngoai nhng phng thc c ban nay, con co nhng phng thc ‘paint()’ va ‘repaint()’. Phng thc paint() dung đê hiên thi mơt đng thng (line), text, hoc mơt hinh anh trên man hinh. ơi sơ cua phng thc nay la đơi tng cua lp Graphics. Lp nay thc goi java.awt. Câu lênh sau đc dung đê import lp Graphics: import java.awt.Graphics; Phng thc Chc nng init() c goi trong qua trinh khi tao applet. Trong qua trinh khi tao, no se tao đơi tng đê cung câp cho applet. Phng thc nay đc dung đê tai cac hinh anh đơ hoa, khi tao cac biên va tao cac đơi tng. start() c goi goi khi mơt applet bt đâu thc thi. Mơt khi qua trinh khi tao hoan tât, thi applet đc khi đơng. Phng thc nay đc dung đê khi đơng lai applet sau khi no đa ngng trc đo stop() c goi khi ngng thc thi mơt applet. Mơt applet bi ngng trc khi no bi huy. 2 destroy() c dung đê huy môt applet. Khi môt applet bi huy, thi bô nh, thi gian thc thi cua vi x ly, không gian đia đc tra vê cho hê thông. Bang 6.1: cac phng thc cua môt applet Phng thc ‘repaint()’ đc dung khi ca sô cân câp nhât lai. Phng thc nay chi cân môt thông sô. Tham sô nay la đôi tng cua lp Graphics. Applet s dung phng thc ‘showStatus()’ đê hiên thi thông tin trên thanh trang thai. Phng thc co tham sô thuôc kiêu d liêu String. ê lây cac thông tin cua applet, user co thê overide phng thc ‘getAppletInfo()’ cua lp Applet. Phng thc nay tra vê 1 đôi tng kiêu String. Cac phng thc cua applet init(), start(), stop(), destroy(), va paint() đc tha kê t môt applet. Nhng mc đinh nhng phng thc nay không thc thi môt thao tac nao ca. ây la vi du đn gian cua applet. Câu lênh sau tao môt lp co tên la ‘Applet1’, lp nay se kê tha tât ca cac phng thc va biên cua lp ‘applet’. public class Applet1 extends Applet Phng thc init() va paint() thng đc dung đê thc hiên môt sô ham đê khi tao va ve applet. Phng thc ‘g.drawstring()’ chi ra vi tri ma đoan vn ban đc ve  đâu trên man hinh. Chng trinh 6.1 hiên thi môt chuôi  dong 70 va côt 80: Chng trinh 6.1 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { int num; public void init() { num = 6; } public void paint (Graphics g) { g.drawString (“Hello to Applet. Chapter ” + num, 70, 80); showStatus (getAppletInfo()); //Hiên thi môt chuôi đc tra vê t ham getAppletInfo() trên thanh trang thai } public String getAppletInfo() //user overrides { return “Created by Aptech”; } 3 } S dung cu phap sau đê dich môt Applet: javac Applet1.java ê thc thi môt applet, ta cân tao môt file HTML. File HTML nay s dung the applet. The applet nay lây tham sô đâu tiên la đng dân cua file applet. The applet co hai thuôc tinh sau:  Width  Height ê truyên tham sô vao applet, s dung param, sau đo la the value. Sau đây la vi du cua the applet: <applet code=Applet1 width=300 height=200> </applet> Luc nay, ta co thê thc thi applet nay bng cach dung trinh xem applet. ây la công cu cua JDK. ê chay file HTML trong trinh xem applet, ta go câu lênh sau: Appletviewer abc.html // ‘abc.html’ la tên cua file HTML Môt tuy chon khac cua applet la ta thêm the applet nh la môt dong chu thich trong đoan code. Luc đo, applet đc dich, va thc thi bng cach s dung lênh sau: Appletviewer Applet1.java Sau đây la kêt qua cua chng trinh trên: 4 Hinh 6.1 Applet 6.2.1 S khac nhau giua Application va Applet Sau đây la s khac nhau gia application va applet:  ê thc thi cac application chung ta dung trinh thông dich Java, trong khi đo applet co thê chay đc trên cac trinh duyêt (co hô tr Java) hay s dung công cu AppletViewer, công cu nay đi kem vi JDK.  Qua trinh thc thi cua application bt đâu t phng thc ‘main()’. Tuy nhiên applet thi không lam nh vây.  Cac application s dung ‘System.out.println()’ đê hiên thi kêt qua ra man hinh trong khi đo applet s dung phng thc ‘drawstring()’ đê xuât ra man hinh. Môt điêu đang lu y la môt chng trinh Java đn le thi co thê va la application va la applet. Chc nng cua applet đc bo qua khi no đc thc thi nh la môt application va ngc lai. Chng trinh 6.2 se minh hoa điêu nay Chng trinh 6.2 import java.applet.Applet; import java.awt.*; /* <applet code = "both" width = 200 height = 100> </applet> */ public class both extends Applet { Button btn; public void init() { btn = new Button ("Click"); } public void paint (Graphics g) { g.drawString ("Applet", 70, 50); } public static void main (String args[]) { both app = new both(); app.init(); System.out.println("Application Main"); 5 } } Sau khi biên dich chng trinh, no co thê đc thc thi nh la môt applet bng cach s dung cu phap sau: appletviewer both.java Kêt qua nh sau: Hinh 6.2 Applet Nêu chay chng trinh trên nh môt application, thi s dung cu phap sau: java both Kêt qua la: Hinh 6.3 Application Khi applet chay trên trinh duyêt web, đc điêm nay thc s hu ich khi ban muôn tai applet trong môt frame mi. Vi du: trong applet đc tao đê chat, môt sô website s dung môt ca sô chat riêng biêt đê chat. Ban cung co thê kêt hp cac đc điêm cua frame va applet vao trong môt chng trinh. 6.2.3 Nhng gii han bao mât trên applet 6 Co môt sô han chê ma applet không thê lam đc. Bi vi cac applet cua Java co thê pha hong toan bô hê thông cua user. Cac lâp trinh viên Java co thê viêt cac applet đê xoa file, lây cac thông tin cac nhân cua hê thông… Vi thê, cac applet cua java không thê lam cac viêc sau:  Không thê đoc hoc ghi file trên hê thông file cua user.  Không thê giao tiêp vi cac site internet, nhng chi co thê vi cac trang web co applet ma thôi.  Không thê chay bât c chng trinh gi trên hê thông cua ngi đoc.  Không thê tai bât c chng trinh đc lu tr trong hê thông cua user. Nhng gii han trên chi đung khi cac applet đc chay trên trinh duyêt Netscape Navigator hoc Microsoft Internet Explorer. 6.3 Chu trinh sông cua môt Applet Chu trinh sông cua môt Applet đc mô ta  s đô di đây: Hinh 6.4 Chu trinh sông cua môt applet Trc tiên, applet đc tao. Bc kê tiêp la khi tao. iêu nay xay ra khi môt applet đc nap. Qua trinh nay bao gôm viêc tao cac đôi tng ma applet cân. Phng thc init() đc override đê cung câp cac hanh vi đê khi tao. Môt khi applet đc khi tao, applet se đc khi đông. Applet co thê khi đông ngay ca khi no đa đc ngng trc đo. Vi du, nêu trinh duyêt nhay đên môt liên kêt nao đo  trang khac, luc đo applet se bi ngng, va đc khi đông tr lai khi user quay vê trang đo. S khac nhau gia qua trinh khi tao va qua trinh khi đông la môt applet co thê khi đông nhiêu lân, nhng qua trinh khi tao thi chi xay ra môt lân. Phng thc ‘start()’ đc override đê cung câp cac thao tac khi đông cho applet. Destroy Stop Creation Initalization Starting 7 Phng thc ‘stop()’ chi đc goi khi user không con  trang đo na, hoc trang đo đa đc thu nho lai  di thanh taskbar. Kê tiêp la phng thc ‘destroy()’. Phng thc nay giup applet don dep trc khi no đc giai phong khoi vung nh, hoc trc khi truyêt duyêt kêt thuc. Phng thc nay đc dung đê huy nhng luông (thread) hay qua trinh đang chay. Phng thc ‘destroy()’ khac vi phng thc finalize() la phng thc destroy() chi dung cho applet, trong khi finalize() la cach tông quat đê don dep applet. Phng thc paint() cung la môt phng thc quan trong khac. Phng thc nay cho phep ta hiên thi môt cai gi đo trên man hinh. Co thê la text, đng thng, mau nên, hoc hinh anh. Phng thc nay xay ra nhiêu lân trong suôt qua trinh applet tôn tai. Phng thc nay thc thi môt lân sau khi applet đc khi tao. No se lp đi lp lai khi di chuyên t ca sô trinh duyêt sang ca sô khac. No cung xay ra khi ca sô trinh duyêt thay đôi vi tri cua no trên man hinh. Phng thc ‘paint()’ co môt tham sô. Tham sô nay la đôi tng cua lp Graphics. Lp Graphics thuôc lp java.awt, chung ta phai import trong đoan code cua applet. Chung ta co thê s dung đoan ma sau: import java.awt.Graphics; 6.4 Truyên tham sô cho Applet Trong chng trinh sau, chung ta se truyên tham sô cho applet. Thanh phân nut ‘bNext’ co tên đc truyên nh la môt tham sô. Phng thc ‘init()’ se kiêm tra tham sô co thên la ‘mybutton’. Sau đo, no tao môt nut vi chuôi đo nh la tên cua nut. Nêu không co tham sô truyên vao, nut đo co tên mc đinh la ‘Default’. Bây gi chung ta đinh nghia the <PARAM> trong đoan ma HTML nh sau: /* <applet code=”Mybutton1” width=”100” height=”100”> <PARAM NAME=”mybutton” value=”Display Dialog”> </applet> */ Chng trinh 6.3 import java.awt.*; import java.applet.*; /* <applet code="Mybutton1" width="200" height="100"> <PARAM NAME="mybutton" value="Display Dialog"> </applet> */ 8 public class Mybutton1 extends Applet { Button bNext; public void init() { /*getParameter returns the value of the specified pareameter in the form of a String object*/ String str = getParameter("mybutton"); //when no parameter is passed if (str==null) str = new String ("Default"); //when parameter is passed bNext = new Button(str); add (bNext); } } Sau đây la kêt qua cua chng trinh trên: Hinh 6.5: truyên tham sô cho applet Bây gi chung ta se s dung lp Graphics đê ve cac hinh chng han nh: đng thng, hinh oval, va hinh ch nhât. Chung ta se hoc lp Font trong cac phân sau. Lp nay co thê dung đê in vn ban bng bât c font nao. 6.5 Lp Graphics Java cung câp goi AWT cho phep ta ve cac hinh đô hoa. Lp Graphics bao gôm tâp hp rât nhiêu phng thc. Nhng phng thc nay đc s dung đê ve bât c hinh nao trong cac hinh sau:  Oval  Rectangle  Square  Circle  Lines 9  Text Ban co thê ve nhng hinh nay bng bât c mau nao. Frame, Applet va canvas la cac môi trng đê hiên thi đô hoa. ê ve bât c hinh anh nao chung ta cân phai co nên đô hoa (Graphical Background). ê co đc môt nên đô hoa, chung ta goi phng thc ‘getGraphics()’ hay bât c phng thc nao trong cac phng thc sau đây:  repaint() c goi khi cân ve lai nhng đôi tng đa ve.  update(Graphics g) c goi môt cach t đông bi phng thc ‘repaint()’. Phng thc nay se xoa nhng đôi tng đa ve, va truyên no cho đôi tng cua lp Graphics đê goi phng thc ‘paint()’;  paint(Graphics g) c goi bi phng thc update(). ôi tng đc truyên cho phng thc nay đc dung đê ve. Phng thc nay dung đê ve cac hinh anh đô hoa khac nhau. Viêc goi phng thc paint() lp đi lp lai thông qua phng thc repaint() se xoa đi cac hinh đa ve trc đo. ê ve cac hinh mi ma vân gi lai nhng hinh đa ve trc đo, chung ta cân override lai phng thc upate(). Public void update (Graphics g) { paint (g); }  đây, phng thc update() se không xoa nhng đôi tng đa ve, nhng chi goi phng thc paint(). ê lam đc điêu nay, no truyên đôi tng cua lp Graphics hoc GraphicsContext cho phng thc paint().  đây, đôi tng cua lp Graphics la ‘g’. 6.5.1 Ve cac chuôi, cac ky t va cac byte Chng trinh sau minh hoa cac ve cac chuôi, ky t va cac byte. ê ve hoc in môt chuôi, lp Graphics cung câp phng thc ‘drawString()’. Cu phap nh sau: DrawString (String str, int xCoor, int yCoor); Ba tham sô la:  Chuôi cân ve.  Toa đô X trên frame, ni chuôi cân đc ve.  Toa đô Y trên frame, ni chuôi cân đc ve. 10 ê ve hoc xuât cac ky t trên frame, lp Graphics cung câp phng thc ‘drawChars’. Cu phap nh sau: DrawChars (char array[], int offset, int length, int xCoor, int yCoor); Chu thich cac tham sô:  Mang cac ky t.  Vi tri bt đâu, ni cac ky t đc ve.  Sô cac ky t cân đc ve.  Toa đô X, ni cac ky t cân đc ve.  Toa đô Y, ni cac ky t cân đc ve. Lp Graphics cung câp phng thc ‘drawBytes()’ đê ve hoc in cac byte ra frame. Cu phap cua phng thc nay nh sau: DrawBytes (byte array[], int offset, int length, int xCoor, int yCoor); 5 tham sô cua phng thc trên la:  Mang cac byte.  Vi tri offset hay vi tri bt đâu.  Sô byte cân ve.  Toa đô X.  Toa đô Y. ôi vi môt ky t hoc môt mang cac byte, chung ta co thê in môt phân cua mang ma thôi.  đây, toa đô x va y la toa đô tinh theo dong. Chng trinh 6.4 minh hoa cach ve chuôi, cac ky t va cac byte. Chng trinh 6.4 import java.awt.*; public class DrawStrings extends Frame { public DrawStrings() { super ("Draw strings, characters, bytes"); setSize (300, 300); setVisible (true); } public void paint(Graphics g) { g.drawString ("Good Morning", 50, 50); g.drawString ("Good Afternoon", 50, 75); g.drawString ("Good Night", 50, 100);

Ngày đăng: 12/12/2013, 11:15

w