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

Tài liệu CoreJava phần 5 pptx

25 326 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. Destro y S to p Creation Initalization Startin g 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); [...]... Blue Phamvi 0- 255 0- 255 0- 255 Bang 6.2 Pham vi gia tri cua cac thanh phân mau S dung cac gia tri trên ê tao ra môt mau tuy thich Cu phap cua ham d ng ê tao ra môt mau nh sau: color (int red, int green, int blue); Bang sau hiên thi cac gia tri cua cac mau th Mau White Light Gray Gray Dark Gray Black Pink Red 255 192 128 64 0 255 ng g p: Green 255 192 128 64 0 1 75 Blue 255 192 128 64 0 1 75 17 Orange Yellow... 6 .5 minh hoa cac ve polyline Ch ng th c ng trinh 6 .5 import java.awt.*; class PolyLines extends Frame { int x1[] = {50 , 75, 95, 1 15, 1 35} ; int y1[] = {50 , 30, 60, 75, 60}; int x2[] = {67, 82, 95, 120, 1 35} ; int y2[] = { 150 , 130, 160, 155 , 180}; public PolyLines()//constructor { super ("Poly Lines"); setSize (300, 300); setVisible (true); } public void paint (Graphics g) { 14 g.drawPolyline (x1, y1, 5) ;... Green 255 192 128 64 0 1 75 Blue 255 192 128 64 0 1 75 17 Orange Yellow Magenta 255 255 255 200 255 0 0 0 255 Bang 6.3 Cac gia tri RGB Cac ôi t ng mau khac nhau co thê thê c dung ê ve ho c tô cac ôi t sau: c tao b ng nh ng gia tri nay Nh ng ôi nay co ng ô hoa Vi du, ê tao mau hông, ta dung lênh color c = new Color ( 255 , 1 75, 1 75) ; Ta co thê thiêt lâp mau b ng cach dung lênh sau: g.setColor (c); //g la ôi... fm.getFont().getName(); g.drawString ("Details of Font " + name, 30, 50 ); g.drawString ("Leading: " + String.valueOf (fm.getHeight()), 50 , 75) ; g.drawString ("Leading: " + String.valueOf (fm.getAscent()), 50 , 100); g.drawString ("Leading: " + String.valueOf (fm.getDescent()), 50 , 1 25) ; g.drawString ("Leading: " + String.valueOf (fm.getLeading()), 50 , 150 ); Font f2 = new Font ("DialogInput", Font.PLAIN, 22); fm... fm.getFont().getName(); g.drawString ("Details of Font " + name, 30, 1 75) ; g.drawString ("Leading: " + String.valueOf (fm.getHeight()), 50 , 200); g.drawString ("Leading: " + String.valueOf (fm.getAscent()), 50 , 2 25) ; g.drawString ("Leading: " + String.valueOf (fm.getDescent()), 50 , 250 ); g.drawString ("Leading: " + String.valueOf (fm.getLeading()), 50 , 2 75) ; } public static void main (String args[]) { new FontMetricsUse... g.setPaintMode (); g.setColor (Color.blue); g.fillRect (50 ,50 ,40, 30); g.setColor (Color.pink); g.fillOval (70, 65, 30, 60); g.setColor (Color.cyan); g.fillRoundRect (90, 80, 70, 50 , 20, 30); g.setColor (Color.blue); g.fillRect (50 , 150 , 40, 30); g.setXORMode (Color.yellow); g.fillOval (70, 1 65, 30, 60); g.setXORMode (Color.magenta); g.fillRoundRect (90, 180, 60, 40, 50 , 20); } public static void main (String args[])... nhân 3 tham sô sau giông nh ph ng th c drawPolyline() ng th c 15 Mang l u tr toa ô x cua cac iêm Mang l u tr toa ô y cua cac iêm Tông sô iêm cân ve Ch ng trinh 6.6 import java.awt.*; class PolyFigures extends Frame { int x1[] = {50 , 25, 40, 100, 80}; int x2[] = {80, 30, 50 , 150 , 100, 170}; int y1[] = {50 , 70, 120, 120, 80}; int y2[] = { 150 , 170, 200, 220, 240,190}; public PolyFigures() { super ("Poly... tham sô giông nh ph no ve cung va tô cung v i mau hiên th i ng th c drawArc(), nh ng 6 .5. 5 Ve hinh PolyLine Ch ng trinh sau lây cac iêm t hai mang ê ve môt loat cac Cu phap cua ph ng th ng ng th c nay nh sau: drawPolyline (int xArray[], int yArray[], int totalPoints); g.setFont (new Font(“Times Roman”, Font.BOLD, 15) ); Ph ng th c ‘drawPolyline()’ nhân 3 tham sô sau: Mang l u tr toa ô x cua cac iêm Mang... g.drawPolyline (x1, y1, 5) ; g.setFont (new Font("Times Roman", Font.BOLD, 15) ); g.drawString("Current Color is black", 100, 100); g.setColor(Color.blue); g.drawPolyline (x2, y2, 5) ; g.drawString ("Current Color is blue", 100, 200); } public static void main (String args[]) { new PolyLines(); } } Kêt qua cua ch ng trinh c minh hoa hinh 6.7 6 .5. 6 Ve va tô a giac (Polygon) L p Graphics cung câp hai ph ng th c... height, int arcwidth, int archeight); Ph ng th c ‘draw3Drect()’ nhân 5 tham sô 4 tham sô âu thi t ng t v i ph ng th c ê ve hinh ch nhât Tuy nhiên, gia tri cua tham sô th 5 quyêt inh la hinh ch nah6t nay co 3 chiêu hay không Tham sô th 5 co kiêu d liêu la Boolean Gia tri nay True co nghia la hinh ch nhât la 3D Ph ng th c ‘drawArc()’ nhân 6 tham sô sau: Toa ô x Toa ô y Chiêu rông cua cung c ve Chiêu cao . White 255 255 255 Light Gray 192 192 192 Gray 128 128 128 Dark Gray 64 64 64 Black 0 0 0 Pink 255 1 75 1 75 18 Orange 255 200 0 Yellow 255 255 0 Magenta. 75, 95, 1 15, 1 35} ; int y1[] = {50 , 30, 60, 75, 60}; int x2[] = {67, 82, 95, 120, 1 35} ; int y2[] = { 150 , 130, 160, 155 , 180}; public PolyLines()//constructor

Ngày đăng: 19/01/2014, 17:20