Tải bản đầy đủ (.pdf) (6 trang)

Applet

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (642 KB, 6 trang )

Đ tài 9. Appletề
Applet là m t trong nh ng k thu t v t tr i c a Java so v i các ngôn ng khác. M tộ ữ ỹ ậ ượ ộ ủ ớ ữ ộ
Applet là m t ch ng trình Java đ c nhúng vào trong các trang web, nó đ ng m t v trí đ cộ ươ ượ ứ ộ ị ộ
l p bên c nh các ph n khác c a trang web.ậ ạ ầ ủ
I. Xây d ng m t Applet đ n gi nự ộ ơ ả
1. So n th o m t t p có tên “Hello.java” nh sau:ạ ả ộ ệ ư
import java.applet.Applet; //khai báo th vi nư ệ
import java.awt.Graphics;
//Khai báo đ hoồ ạ
public class Hello extends Applet {
//cài đ t ph ng th c cho Appletặ ươ ứ
public void paint(Graphics g){
g.drawString("Hello!", 50, 25);
}
2. Biên d ch t p Hello.javaị ệ
3. So n th o m t trang HTML có tên hello.htmạ ả ộ
<html><body>
<applet>
<applet code="Hello.class" width=150 height=25>
</applet>
</body></html>
4. Đ t file Hello.class và hello.htm vào trong cùng m t th m cặ ộ ư ụ
5. M file hello.htm.ở
Tuy nhiên đ các applet có th ch y đ c, nó c n m t JVM trên máy c c b . Đ cóể ể ạ ượ ầ ộ ụ ộ ể
đ c JVM cho các trình duy t ta c n cài phiên b n Java lên máy tính c c b và tích h p vàoượ ệ ầ ả ụ ộ ợ
trình duy t nh m t plug-in.ệ ư ộ
Trong các phiên b n Java g n đây, ng i l p trình có th s d ng th vi n swing n mả ầ ườ ậ ể ử ụ ư ệ ằ
trong gói javax.swing đ có đ c giao di n GUI th ng nh t trên m i h th ng. Các l p trongể ượ ệ ố ấ ọ ệ ố ớ
swing có tên g i khác so v i các l p trong awt b i thêm ký t đ u tiên “J”.ọ ớ ớ ở ự ầ
II. C u trúc c b n và vòng đ i c a m t Appletấ ơ ả ờ ủ ộ
M t ch ng trình Applet đ y đ s bao g m các thành ph n nh sau:ộ ươ ầ ủ ẽ ồ ầ ư


import java.applet.Applet;
public class myApplet extends Applet{
public void init(){ ...... }
public void start(){ ...... }
public void stop() { ...... }
public void destroy() { ...... }
.... //Các ph ng th c khácươ ứ
}
N u dùng JApplet thì ta có khai báo ph n đ u nh sau:ế ầ ầ ư
import javax.swing.JApplet;
public class myApplet extends JApplet{…}
108
Vòng đ i c a m t Applet đ c đánh d u b i các s ki n di n ra m i giai đo n, l pờ ủ ộ ượ ấ ở ự ệ ễ ở ỗ ạ ậ
trình viên c n n m đ c ý nghĩa c a t ng giai đo n đ có th vi t code đi u khi n Applet:ầ ắ ượ ủ ừ ạ ể ể ế ề ể
1. Giai đo n init: Th c hi n các công vi c kh i t o m t Applet. Giai đo n nàyạ ự ệ ệ ở ạ ộ ạ
đ c b t đ u ngay sau khi th <param> n m trong th <applet> đ c x lý.ượ ắ ầ ẻ ằ ẻ ượ ử
Các hành đ ng nh thêm các thành ph n giao di n ng i dùng GUI đ c th cộ ư ầ ệ ườ ượ ự
hi n đây.ệ ở
2. Giai đo n start: Đ c th c hi n ngay sau khi giai đo n init đ c th c hi nạ ượ ự ệ ạ ượ ự ệ
xong. Nó cũng đ c g i b t c khi nào ng i dùng chuy n sang m t trang webượ ọ ấ ứ ườ ể ộ
khác r i quay l i trang có applet. Do đó, code n m trong start có th đ c th cồ ạ ằ ể ượ ự
hi n nhi u l n trong khi code trong init ch đ c th c hi n 1 l n.ệ ề ầ ỉ ượ ự ệ ầ
3. Giai đo n stop: Đ c th c hi n khi ng i dùng r i kh i trang web ch a applet.ạ ượ ự ệ ườ ờ ỏ ứ
Do đó, code n m trong stop cũng có th đ c th c hi n nhi u l n.ằ ể ượ ự ệ ề ầ
4. Giai đo n destroy: Đ c th c hi n khi ng i s d ng t t trình duy t.ạ ượ ự ệ ườ ử ụ ắ ệ
Khi vi t m t applet, chúng ta không ph i khi nào cũng cài đ t đ y đ 4 ph ng th cế ộ ả ặ ầ ủ ươ ứ
mà tùy theo nhu c u.ầ
Ví d sau xây d ng m t applet cho phép v liên ti p b t đ u t v trí gi a applet.ụ ự ộ ẽ ế ắ ầ ừ ị ữ
import java.applet.*;
import java.awt.*;

import java.awt.event.*;
public class AppletSample extends Applet
{
Point curentPoint; // L u t a đ đi m hi n t iư ọ ộ ể ệ ạ
public void init()
{
curentPoint = new Point(this.getWidth()/2,this.getHeight()/2);
this.setBackground(Color.CYAN); // đ t màu n n c a appletặ ề ủ
}
public void start()
{
this.addMouseListener( new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
drawOnApplet(curentPoint,e.getPoint());
curentPoint = e.getPoint();
}
}
);
}
public void drawOnApplet(Point p1, Point p2)
{
Graphics g = this.getGraphics();
g.drawLine(p1.x,p1.y,p2.x,p2.y);
}
}
109
III. An ninh và kh năng c a Appletả ủ
Vì applet đ c download t xa và th c hi n trên máy tính c b nên v n đ v an ninhượ ừ ự ệ ụ ộ ấ ề ề

đ c quan tâm đ c bi t. Các nguyên t c v an ninh c a m t applet là:ượ ặ ệ ắ ề ủ ộ
• Applet không bao gi th c hi n m t ch ng trình c a máy c c b .ờ ự ệ ộ ươ ủ ụ ộ
• Applet không th giao ti p v i các máy tính khác trên m ng tr máy tính mà nóể ế ớ ạ ừ
đ c download v .ượ ề
• Applet không th đ c và ghi d li u lên máy tính c c bể ọ ữ ệ ụ ộ
• Applet không th tìm th y thông tin gì v máy tính cuc b , tr các thông tin nhể ấ ề ộ ừ ư
phiên b n Java, tên và phiên b n h đi u hành, ký t phân tách file, đ ng d n.ả ả ệ ề ự ườ ẫ
Applet không th tìm th y các thông tin cá nhân nh email, password,…ể ấ ư
• T t c các c a s trình duy t có applet đ c t i v đ u có thông báo. ấ ả ử ổ ệ ượ ả ề ề
Nh ng yêu c u v an ninh c a applet là r t quan tr ng. Trong m t s tr ng h p ta cóữ ầ ề ủ ấ ọ ộ ố ườ ợ
th c u hình đ applet đ c tin c y và có th truy c p vào máy tính c c b gi ng nh m tể ấ ể ượ ậ ể ậ ụ ộ ố ư ộ
ch ng trình đang ch y trên máy tính đó.ươ ạ
• Applet cũng có nh ng kh năng nh :ữ ả ư
• T o k t n i đ n máy đang ch y nó.ạ ế ố ế ạ
• Applet d dàng dùng các siêu văn b n hi n th .ễ ả ể ị
• Có th g i đ n các ph ng th c toàn c c c a các applet khác trên cùng trangể ọ ế ươ ứ ụ ủ
web. Applet có th giao ti p v i các applet khác trên trang web cũng nh v i cácẻ ế ớ ư ớ
đ i t ng khác trên trang web thông qua c ch riêng.ố ượ ơ ế
• Các applet đ c n p t h th ng t p tin c c b s không b các gi i h n c aượ ạ ừ ệ ố ậ ụ ộ ẽ ị ớ ạ ủ
các applet đ c n p t m ng xu ng.ượ ạ ừ ạ ố
• Không nh t thi t là các applet s ng ng l i khi ta thoát kh i các trang web ch aấ ế ẽ ừ ạ ỏ ứ
nó.
IV. ng d ng Applet v i c a s PopupỨ ụ ớ ủ ổ
V i Applet chúng ta hoàn toàn có th có thêm các c a s pop-up đ m r ng khôngớ ể ử ổ ể ở ộ
gian làm vi c. Sau đây là m t Japplet có th m m t Frame m i.ệ ộ ể ở ộ ớ
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PopupCalculatorApplet extends JApplet
{

public void init()
{
// T o m t frame v i m t c a s panelạ ộ ớ ộ ử ổ
final JFrame frame = new JFrame();
frame.setTitle("Calculator");
frame.setSize(200, 200);
// Thêm m t Button đ n/ hi n frame pop-upộ ể ẩ ệ
JButton calcButton = new JButton("Calculator");
add(calcButton);
calcButton.addActionListener(new
ActionListener()
{
110
public void actionPerformed(ActionEvent event)
{
frame.setVisible(!frame.isVisible());
}
});
}
}
V. Các th HTML c a Appletẻ ủ
M t khai báo applet trong trang HTML th ng có d ng:ộ ườ ạ
<applet code="NotHelloWorldApplet.class" width="300" height="100">
Thong tin duoc hien thi khi applet khong hien thi
</applet>
Sau đây ta s tìm hi u các thu c tính c a applet:ẽ ể ộ ủ
Các thu c tính v v trí:ộ ề ị
• height: Chi u cao c a applet. Các applet không th thay đ i kích th c khi đãề ủ ể ổ ướ
ch y.ạ
• width: Chi u r ng c a appletề ộ ủ

• align: Xác đ nh v trí c a applet so v i các văn b n xung quanh nó. Các giá trị ị ủ ớ ả ị
c a align có th là: left, right, middle, top, texttop, absmiddle, baseline, bottom,ủ ể
absbottom, vspace và hspace.
Các thu c tính v ch ng trình ngu n- code:ộ ề ươ ồ
code : Thu c tính này cho bi t tên c a class ch a ch ng tình applet. Tên này là t ngộ ế ủ ứ ươ ươ
đ i so v i giá tr codebase ho c v i th m c hi n hành n u không có codebase. Đ ng d nố ớ ị ặ ớ ư ụ ệ ế ườ ẫ
ph i phù h p v i đ ng d n gói c a class applet. Ví d : n u applet có tên MyApplet.classả ợ ớ ườ ẫ ủ ụ ế
đ c đ t trong gói com.mycompany thì đ ng d n ph i là:ượ ặ ườ ẫ ả
code="com/mycompany/MyApplet.class".
ho c:ặ
code="com.mycompany.MyApplet.class" cũng đ c ch p nh n.ượ ấ ậ
- codebase: Là m t thu c tính tùy ch n đ xác đ nh đ ng d n tuy t đ i n i ch a classộ ộ ọ ể ị ườ ẫ ệ ố ơ ứ
giá tr code.ở ị
archive: Ch a tên các gói ch ng trình ho c tài nguyên khác đ c t i v kèm theoứ ươ ặ ượ ả ề
applet. Các gói ch ng trình đ c nén d ng file JAR và đ c đ t cách nhau b i d u ,. Víươ ượ ở ạ ượ ặ ở ấ
d :ụ
<applet code="CalculatorApplet.class"
archive="CalculatorClasses.jar,corejava/CoreJavaClasses.jar"
width="100" height="150">
object: Ch a tên file đã đ c tu n t hóa c a m t applet.ứ ượ ầ ự ủ ộ
name: Tên c a applet. Trong các trình duy t c a Netscape ho t Windows đ u cho phépủ ệ ủ ặ ề
applet giao ti p v i các đ i t ng javascript khác trên trang web. Khi đó applet c n có tên đế ớ ố ượ ầ ể
truy c p.ậ
Ngoài ra Java cho phép ta đ nh nghĩa các tham s cho applet thông qua các th <param>ị ố ẻ
Ví d :ụ
<applet code="FontParamApplet.class" width="200" height="200">
<param name="font" value="Helvetica"/>
111
<param name="size" value="24"/>
</applet>

Khi đó trong ch ng trinh applet, ta có th l y ra đ s d ng:ươ ể ấ ể ử ụ
public class FontParamApplet extends JApplet
{
public void init()
{
String fontName = getParameter("font");
int fontSize = Integer.parseInt(getParameter("size"));
. . .
}
}
VI. Các ph ng th c, l p trình đ h a và b t s ki n c a appletươ ứ ậ ồ ọ ắ ự ệ ủ
• public void paint(Graphics g) {...}: Là ph ng th c hi n th c b n, th ng cácươ ứ ể ị ơ ả ườ
applet dùng paint() đ bi u di n các ho t đ ng c a mình trên trang web.ể ể ễ ạ ộ ủ
• public void update(Graphics g) {...}: là ph ng th c ta dùng sau khi th c hi nươ ứ ự ệ
pain() nh m làm tăng hi u qu v .ằ ệ ả ẽ
Ngoài ra Applet còn th a h ng các ph ng th c t l p AWT.ừ ưở ươ ứ ừ ớ
• Ph ng th c repaint() đ c dùng khi c a s c n c p nh t l i. Ph ng th c nàyươ ứ ượ ử ổ ầ ậ ậ ạ ươ ứ
ch c n m t tham s là đ i t ng c a l p Graphics. ỉ ầ ộ ố ố ượ ủ ớ
• getDocumentBase(): cho bi t đ a ch d ng URL c a th m c ch a t p tinế ị ỉ ạ ủ ư ụ ứ ậ
HTML ch a applet.ứ
• getCodeBase(): Cho bi t đ a ch d ng URL c a th m c ch a t p tin .CLASSế ị ỉ ạ ủ ư ụ ứ ậ
c a applet.ủ
• getImage(URL url, String name): tr v m t đ i t ng nh hi n th trên n n.ả ề ộ ố ượ ả ể ị ề
• getLocale(): Xác đ nh v trí applet.ị ị
• getAudioClip(URL url, String name): cho đ i tu ng audio.ố ợ
• showStatus(String st): hi n th xâu st trên thanh trang thái.ể ị
• drawChars(char array[ ], int offset, int length, int xCoor, int yCoor): xu t các kýấ
t . Chú thích các tham s : array: M ng các ký t ; offset: V trí b t đ u, n i cácự ố ả ự ị ắ ầ ơ
ký t đ c v .; length: S các ký t c n đ c v ; xCoor: To đ X, n i các kýự ượ ẽ ố ự ầ ượ ẽ ạ ộ ơ
t c n đ c v ; yCoor: To đ Y, n i các ký t c n đ c v . ự ầ ượ ẽ ạ ộ ơ ự ầ ượ ẽ

• drawBytes(byte array[ ], int offset, int length, int xCoor, int yCoor): xu t các byteấ
ra.Trong đó array: M ng các byte.;V trí offset hay v trí b t đ u; length: S byteả ị ị ắ ầ ố
c n v ; xCoor: To đ X; yCoor: To đ Y. ầ ẽ ạ ộ ạ ộ
• drawLine(int x1, int y1, int x2, int y2): V đ ng th ng t A(x1, y1) đ n B(x2,ẽ ườ ẳ ừ ế
y2).
• drawOval(int xCoor, int yCoor, int width, int height): V đ ng oval.ẽ ườ
• fillOval(int xCoor, int yCoor, int width, int height): V hình oval đ c.Trong đó:ẽ ặ
width là Chi u r ng c a hình, height là Chi u cao c a hình.ề ộ ủ ề ủ
• drawRect(int xCoor, int yCoor, int width, int height): V hình ch nh t.ẽ ữ ậ
• fillRect(int xCoor, int yCoor, int width, int height): V hình ch nh t đ c.ẽ ữ ậ ặ
• drawRoundRect(int xCoor, int yCoor, int width, int height, int arcwidth, int
archeight): V hình ch nh t có bo góc.ẽ ữ ậ
112

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×