1
Chng 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 hoc xong chng nay, ban co thê nm đc cac nơi dung sau:
Hiêu đc cac Applet cua Java
Phân biêt applet va cac ng dung application
Tim hiêu chu trinh sơng cua mơt applet
Tao cac applet
Hiên thi cac hinh anh s dung applet
Trun tham sơ cho applet
Tim hiêu ng dung cua applet trong GUI
6.1 Java AppletApplet la mơt chng trinh Java co thê chay trong trinh dut web. Tât ca cac applet đêu
la cac lp con cua lp ‘Applet’.
Lp Applet thc package ‘java.applet’. Lp Applet bao gơm nhiêu phng thc đê điêu
khiên qua trinh thc thi cua applet. ê tao applet, ban cân import hai goi sau:
java.applet
java.awt
6.2 Câu truc cua mơt Applet
Mơt Applet đinh nghia câu truc cua no t 4 s kiên xay ra trong st qua trinh thc thi.
ơi vi mơi s kiên, mơt phng thc đc goi mơt cach t đơng. Cac phng thc nay
đc minh hoa trong bang 6.1
iêu quan trong la khơng phai luc nao applet cung bt đâu t ban đâu. Ma no bt đâu t
vi tri tiêp theo cua qua trinh thc thi trc đo.
Ngoai nhng phng thc c ban nay, con co nhng phng thc ‘paint()’ va ‘repaint()’.
ây la vi du đn gian cua applet. Câu lênh sau tao môt lp co tên la ‘Applet1’, lp nay se
kê tha tât ca cac phng thc va biên cua lp ‘applet’.
public class Applet1 extends Applet
Phng thc init() va paint() thng đc dung đê thc hiên môt sô ham đê khi tao va
ve applet. Phng thc ‘g.drawstring()’ chi ra vi tri ma đoan vn ban đc ve đâu trên
man hinh.
Chng trinh 6.1 hiên thi môt chuôi dong 70 va côt 80:
Chng trinh 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 ham getAppletInfo() trên thanh trang
thai
}
public String getAppletInfo() //user overrides
code. Luc đo, applet đc dich, va thc thi bng cach s dung lênh sau:
Appletviewer Applet1.java
Sau đây la kêt qua cua chng trinh trên: 4
Hinh 6.1 Applet
6.2.1 S khac nhau giua Application va AppletSau đây la s khac nhau gia application va applet:
ê thc thi cac application chung ta dung trinh thông dich Java, trong khi đo applet
co thê chay đc trên cac trinh duyêt (co hô tr Java) hay s dung công cu
AppletViewer, công cu nay đi kem vi JDK.
Qua trinh thc thi cua application bt đâu t phng thc ‘main()’. Tuy nhiên applet
thi không lam nh vây.
Cac application s dung ‘System.out.println()’ đê hiên thi kêt qua ra man hinh trong
khi đo applet s dung phng thc ‘drawstring()’ đê xuât ra man hinh.
Môt điêu đang lu y la môt chng trinh Java đn le thi co thê va la application va la
applet. Chc nng cua applet đc bo qua khi no đc thc thi nh la môt application va
ngc lai.
Chng trinh 6.2 se minh hoa điêu nay
Chng trinh 6.2
dung cu phap sau:
appletviewer both.java
Kêt qua nh sau:
Hinh 6.2 Applet
Nêu chay chng trinh trên nh môt application, thi s dung cu phap sau:
java both
Kêt qua la:
Hinh 6.3 Application
Khi applet chay trên trinh duyêt web, đc điêm nay thc s hu ich khi ban muôn tai
applet trong môt frame mi. Vi du: trong applet đc tao đê chat, môt sô website s dung
môt ca sô chat riêng biêt đê chat. Ban cung co thê kêt hp cac đc điêm cua frame va
applet vao trong môt chng trinh.
6.2.3 Nhng gii han bao mât trên applet
6
Co môt sô han chê ma applet không thê lam đc. Bi vi cac applet cua Java co thê pha
hong toan bô hê thông cua user. Cac lâp trinh viên Java co thê viêt cac applet đê xoa file,
lây cac thông tin cac nhân cua hê thông…
Vi thê, cac applet cua java không thê lam cac viêc sau:
Destroy
Stop
Creation
Initalization
Starting
7
Phng thc ‘stop()’ chi đc goi khi user không con trang đo na, hoc trang đo đa
đc thu nho lai di thanh taskbar.
Kê tiêp la phng thc ‘destroy()’. Phng thc nay giup applet don dep trc khi no
đc giai phong khoi vung nh, hoc trc khi truyêt duyêt kêt thuc. Phng thc nay
đc dung đê huy nhng luông (thread) hay qua trinh đang chay.
Phng thc ‘destroy()’ khac vi phng thc finalize() la phng thc destroy() chi
dung cho applet, trong khi finalize() la cach tông quat đê don dep applet.
Phng thc paint() cung la môt phng thc quan trong khac. Phng thc nay cho
phep ta hiên thi môt cai gi đo trên man hinh. Co thê la text, đng thng, mau nên, hoc
hinh anh. Phng thc nay xay ra nhiêu lân trong suôt qua trinh applet tôn tai. Phng
thc nay thc thi môt lân sau khi applet đc khi tao. No se lp đi lp lai khi di chuyên
t ca sô trinh duyêt sang ca sô khac. No cung xay ra khi ca sô trinh duyêt thay đôi vi
tri cua no trên man hinh.
Phng thc ‘paint()’ co môt tham sô. Tham sô nay la đôi tng cua lp Graphics. Lp
Graphics thuôc lp java.awt, chung ta phai import trong đoan code cua applet. Chung ta
co thê s dung đoan ma sau:
import java.awt.Graphics;
/*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 cua chng trinh trên:
Hinh 6.5: truyên tham sô cho applet
Bây gi chung ta se s dung lp Graphics đê ve cac hinh chng han nh: đng thng,
hinh oval, va hinh ch nhât. Chung ta se hoc lp Font trong cac phân sau. Lp nay co thê
dung đê in vn ban bng bât c font nao.
6.5 Lp Graphics
Java cung câp goi AWT cho phep ta ve cac hinh đô hoa. Lp Graphics bao gôm tâp hp
rât nhiêu phng thc. Nhng phng thc nay đc s dung đê ve bât c hinh nao
trong cac hinh sau:
Oval
Rectangle
Square
paint (g);
}
đây, phng thc update() se không xoa nhng đôi tng đa ve, nhng chi goi phng
thc paint(). ê lam đc điêu nay, no truyên đôi tng cua lp Graphics hoc
GraphicsContext cho phng thc paint(). đây, đôi tng cua lp Graphics la ‘g’.
6.5.1 Ve cac chuôi, cac ky t va cac byte
Chng trinh sau minh hoa cac ve cac chuôi, ky t va cac byte.
ê ve hoc in môt chuôi, lp Graphics cung câp phng thc ‘drawString()’. Cu phap
nh sau:
DrawString (String str, int xCoor, int yCoor);
Ba tham sô la:
Chuôi cân ve.
Toa đô X trên frame, ni chuôi cân đc ve.
Toa đô Y trên frame, ni chuôi cân đc ve.
10
ê ve hoc xuât cac ky t trên frame, lp Graphics cung câp phng thc ‘drawChars’.
Cu phap nh sau:
DrawChars (char array[], int offset, int length, int xCoor, int yCoor);
Chu thich cac tham sô:
Mang cac ky t.
Vi tri bt đâu, ni cac ky t đc ve.
Sô cac ky t cân đc ve.
}
public void paint(Graphics g)
{
g.drawString ("Good Morning", 50, 50);
g.drawString ("Good Afternoon", 50, 75);
g.drawString ("Good Night", 50, 100);