Chuong 10 - Applet
LẬP TRÌNH JAVA
Nguyễn Thị Thu Trang
Chương 10. Applet
Tổng quan về Applet
Chương trình Applet đầu tiên
Vòng đời của Applet
Lớp Graphics
Lớp Color, Font chữ
Tạo Applet
...
1. Tổng quan về Applet
Applet là chương trình Java được nhúng trong mã nguồn HTML.
Có thể chạy trên trình duyệt Web có cài JVM (JRE) sau khi tải về.
Nhờ các applet, trang Web có thêm được sức sống vì applet có thể thể hiện multimedia, tạo được sự tương tác với user như hỏi-trả lời
Có thể nguy hiểm, không đảm bảo tính an toàn
1. Tổng quan về Applet
Để có thể chạy applet, trình duyệt của user phải bật chức năng Java Plug-in
1. Tổng quan về Applet
Để sử dụng gói Applet của Java:
import java.applet.*;// để sử dụng lớp Applet
import javax.swing.*;// để sử dụng lớp JApplet
Đ ể t ạo 1 applet, xây d ựng 1 class con c ủa l ớp Applet ho ặc l ớp JApplet.
Thư ờng đ ặt tên l ớp applet này trùng tên v ới tên file.html.
Chương 10. Applet
Tổng quan về Applet
Chương trình Applet đầu tiên
Vòng đời của Applet
Lớp Graphics
Lớp Color, Font chữ
Tạo Applet
...
2. Chương trình Applet đầu tiên
import java.applet.Applet;
import java.awt.Graphics;
public class FirstApplet extends Applet {
public void paint(Graphics g) {
g.drawString("This is my first applet!", 20, 100);
}
}
Tạo 1 tài liệu HTML chứa applet
Để thực thi một applet, tạo một tập tin HTML có sử dụng thẻ applet hoặc thẻ object
Thẻ applet/object có hai thuộc tính:
Width
Height
Để truyền tham số tới applet, sử dụng thẻ 'param', và thuộc tính 'value'
Ví dụ:
<html>
<applet code="FirstApplet" width=200 height=200>
</applet>
</html>
2. Chương trình Applet đầu tiên (2)
Kế thừa từ lớp Applet
Đồ họa từ Abstract Window Toolkit (AWT)
Chạy sau khi biên dịch:
Trên cmd: appletviewer FirstApplet.html hoặc
appletviewer FirstApplet.java
Textpad: Ctrl + 3
Chương 10. Applet
Tổng quan về Applet
Chương trình Applet đầu tiên
Vòng đời của Applet
Lớp Graphics
Lớp Color, Font chữ
Tạo Applet
...
3. Vòng đời của Applet
import java.applet.Applet;
import java.awt.Graphics;
/*
<applet code="AppletLifeCycle" width=300 height=50>
</applet>
*/
public class AppletLifeCycle extends Applet {
String str = "";
public void init() {
str += "init; ";
}
public void start() {
str += "start; ";
}
public void stop() {
str += "stop; ";
}
public void destroy() {
System.out.println("destroy");
}
public void paint(Graphics g){
g.drawString(str, 10, 25);
}
}
3. Vòng đời của Applet (2)
init(): Chỉ được gọi khi applet bắt đầu thực thi
start(): Được chạy sau init(), được gọi bởi appletviewer hoặc trình duyệt Web.
stop(): Được chạy khi applet bị thu nhỏ
destroy(): Được gọi bởi appletviewer hoặc trình duyệt Web khi applet kết thúc.
3. Vòng đời của Applet (3)
Các phương thức khác:
paint( )
repaint( )
showStatus( )
getAppletContext()
Ví dụ
import java.applet.Applet;
import java.awt.Graphics;
public class TestApplet extends Applet {
public void paint(Graphics g) {
g.drawString("This is my first applet!",
20, 100);
showStatus("Applet is running!");
g.drawString("Context: " +
getAppletContext(), 20, 120);
}
}
Chương 10. Applet
Tổng quan về Applet
Chương trình Applet đầu tiên
Vòng đời của Applet
Lớp Graphics
Lớp Color, Font chữ
Tạo Applet
...
4. Lớp Graphics
import java.applet.Applet;
import java.awt.Graphics;
/*
<applet code="DrawArc" width=200 height=200>
</applet>
*/
pulic class DrawArc extends Applet {
public void paint(Graphics g) {
g.drawArc(20, 20, 160, 160, 0, 135);
}
}
Tham khảo: http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Graphics.html
Các phương thức trong lớp Graphics
abstract void drawArc(int x, int y, int w, int h, int degreesO, int degrees1)
abstract boolean drawImage(Image img, int x, int y, ImageObserver io)
abstract void drawLine(int x0, int y0, int x, int y1)
abstract void drawOval(int x, int y, int w, int h)
abstract void drawPolygon(int x[], int u[], int n)
abstract void drawPolyline(int x[], int y[], int n)
void drawRect(int x, int y, int w, int h)
abstract void drawString(String str, int x, int y)
abstract void fillArc(int x, int y, int w, int h, int degree0, int degree1)
abstract void fillOval(int x ,int y, int w, int h)
abstract void fillPolygon(int x[], int y[], int n)
void fillRect(int x, int y, int w, int h)
abstract Color getColor()
abstract Font getFont()
abstract void setFont(Font f)
...
Chương 10. Applet
Tổng quan về Applet
Chương trình Applet đầu tiên
Vòng đời của Applet
Lớp Graphics
Lớp Color, Font chữ
Tạo Applet
...
5. Lớp Color
Phương thức khởi tạo của lớp Color:
Color(int red, int green, int blue)
Color(int rgb)
Color(float r, float g, float b)
Các phương thức trong lớp Graphics:
static int HSBtoRGB(float h, float s, float b)
static float[] RGBtoHSB(int r, int g, int b, float hsb[])
Color brighter()
Color darker()
static Color decode(String str) throws NumberFormatException
boolean equals(Object obj)
int getBlue()
int getGreen()
int getRGB()
int getRed()
Lớp Color
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
/* <applet code="BlueString" width=300 height=100>
</applet> */
public class BlueString extends Applet {
public void paint(Graphics g) {
g.setColor(Color.blue);
g.drawString("Blue String", 100, 50);
}
}
Tham khảo: http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Color.html
Hiển thị chữ
Using Applet Dimensions
Using Applets in a Web Page
The Applet Class
The AppletContext Interface
Using Images
Chương 10. Applet
Tổng quan về Applet
Chương trình Applet đầu tiên
Vòng đời của Applet
Lớp Graphics
Lớp Color, Font chữ
Tạo Applet
...
6. Các bước tạo applet
Tạo applet với JCreator
Tự tạo applet
6.1. Tạo applet với JCreator (1)
6.1. Tạo applet với JCreator (2)
6.1. Tạo applet với JCreator (3)
6.1. Tạo applet với JCreator (4)
6.1. Tạo applet với JCreator (5)
Cấu trúc 1 JCreator project
6.2. Tạo applet thủ công
Thiết kế : Sẽ tạo cấu trúc
thư mục và tập tin
7. Chạy applet
Chạy applet trong web page
Chạy applet bằng appletviewer
Chạy Applet trong môi trường JCreator
7.1. Chạy applet trong Browser
7.2. Cú pháp appletview
7.3. Chạy applet với JCreator
7.4. Applet trong Frame
Đặt applet vào 1 frame, các frame khác hiển thị thêm thông tin
Main.htm F1.htm
<HTML>
<HEAD>
</HEAD>
<FRAMESET cols= "40%,*">
<noframes>
<BODY BGCOLOR="Lavender">
</BODY>
</noframes>
<FRAME src = "f1.htm">
<FRAME src = "applet1.htm">
</frameset>
</HTML>
Applet1.htm Applet1.java
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR="red">
<CENTER>
<APPLET
code = "Applet1.class"
width = "200"
height = "100"
</APPLET>
</CENTER>
</BODY>
</HTML>
8. Applet có phương thức main
Cho phép chạy applet như một application
Viết hàm main cho applet
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{ public void init()
{ }
public void paint(Graphics g)
{ g.drawString("Hello from Java Applet", 10, 20 );
}
public static void main (String args[])
{ Applet1 ap = new Applet1();
ap.init(); // khởi tạo ap nhưng không gọi appletviewer
System.out.println("Applet1 runs as an application!");
}
}
9. Truyền tham số cho applet
Truyền tham số cho applet bằng thẻ <param> đặt bên trong thẻ <Applet>
Một tham số có tên gọi và trị của tham số.
Thí dụ sau minh họa truyền tham số từ Applet2.htm sang Applet2.class để xuất file ảnh Xuongrong.jpj
Cú pháp của thẻ applet:
<APPLET
code = "Applet2.class"
width = "250" height = "280">
<param name = "image"
value = "xuongrong.jpg">
</APPLET>
Truyền tham số cho applet
10. Multimedia với applet
Multimedia - Đa môi trường, thêm hình ảnh, âm thanh vào trang web.
Multimedia làm tăng tính hấp dẫn của trang Web.
Các file multimedia có thể lấy ở hệ thống file cục bộ hoặc từ 1 địa chỉ URL.
10.1. Đưa ảnh vào Applet
Các dạng ảnh được chấp nhận: JPG, JPEG, GIF.
Các bước hiển thị ảnh trong applet
• Xác định địa chỉ file ảnh (file ảnh trong máy hoặc URL)
• Quyết định vị trí sẽ hiển thị ảnh.
• Cung cấp các tham số cần thiết cho phương thức tương ứng. (xem drawImage(..)
Xem thí dụ trước về nạp file ảnh cục bộ
URL với Applet
URL= Uniform Resource Locator
"http://www.sun.com/index.html" cho trình duyệt biết dùng hypertext transfer protocol để tải trang index.html từ www.sun.com.
Java cung cấp lớp URL trong gói java.net cho phép tạo 1 đối tượng quản lý địa chỉ trang Web.
URL với Applet
Constructors của lớp URL
Thí dụ về mô tả 1 URL
Mô tả 1 địa chỉ tuyệt đối
URL url1 = new URL
("http://www.sun.com/index.html");
Để định vị tương đối 1 trang (1 file)
URL url2 = new URL (u, "tmc/abc.gif");
Trong đó mô tả abc.gif nằm trong thư mục tmc và tmc là thư mục con URL u đã có.
10.2. Xuất ảnh
Trích 1 đối tượng ảnh trong applet từ URL
Image Img1 = getImage
("http://www.abc.com/pic1.gif");
Trích 1 đối tượng ảnh trong applet từ local file
Image Img2 = getImage
(getCodeBase(), "pic2.jpg");
Vẽ ảnh Img1 trong applet tại vị trí (x,y) . Dùng đối tượng Graphics g của Applet
g.drawImage (Img1, x,y,this);
Tham khảo lại method drawImage của lớp Graphics
10.3. Vẽ trong Applet
Dùng các hành vi của lớp Graphics về vẽ đã được giới thiệu trong chương đồ họa :
drawLine (x1,y1, x2, y2);
drawRect (x,y,Width,Height) , fillRect (x,y,Width,Height) ;
drawOval (x,y,width,height) , fillOval (x,y,width,height)
drawArc (x,y,width,Height,startAngle, degree)
fillArc (x,y,width,Height,startAngle, degree)
...
10.4. Âm thanh với Applet
Interface java.applet.AudioClip cho việc xuất âm thanh.
Các hành vi:
Âm thanh với Applet
Khai báo và nạp AudioClip
AudioClip audioClip;
Lấy file âm thanh từ local file
AudioClip getAudioClip (getDocumentBase(), String Filename);
Lấy file âm thanh từ URL
AudioClip getAudioClip (URL url);
AudioClip getAudioClip (URL url , String filename );
11. Cách chuyển 1 ứng dụng thành Applet
(1) import java.applet.*;
• Đổi lớp cha từ Frame sang Applet
• Đổi constructor thành public void init(), bỏ phát biểu super(...) nếu có vì đây là hành vi của lớp Frame.
• Bỏ Window Listener vì trong Applet không có tác vụ này
• Bỏ hàm main
Cách chuyển 1 ứng dụng thành Applet
import java.awt.*;
import java.awt.event.*;
class A extends Frame
{ <data>
A()
{ super(...);
<code>
addWindowListener(...)
}
< các methods>
public static void main(...)
{ ... }
}
Minh họa chuyển application thành applet
8.11- Tóm tắt
Applet là 1 ứng dụng Java nhỏ nhúng vào trính duyệt
Để giữ tính bảo mật, applet không được truy cập hệ thống file của máy khách, không được truy cập server nào khác ngoại trừ server mà từ đó applet này được download.
Applet có chu kỳ sống: init, start, stop, destroy.
Gói java.applet chứa lớp Applet giúp ta tạo ra applet.
Tạo 1 applet tức là hiện thực 1 lớp con của lớp Applet.
Tóm tắt
Phương thức paint(Graphics g), repaint(Graphics g), update(Graphics g) thường được dùng để vẽ trong panel của applet
Trong Applet, ta có thể xuất chữ, vẽ các hình, xuất ảnh bằng các hành vi drawXXX(...).
Muốn applet có thể chạy như 1 application thì viết thêm hàm main cho applet.
Truyền tham số từ file.htm sang applet bằng thẻ <parameter name="paraName" value ="paraValue">
Tóm tắt
Lấy file ảnh bằng
Img = getImage(getCodeBase(), ImageFileName);
Gói java.net chứa lớp URL mô tả về một url
Tạo 1 đối tượng URL
URL url1 = new URL("http://www.sun.com/index.html");
Interface java.applet.AudioClip khai báo các han2h vi xử lý âm thanh gồm start(), loop(), stop()
File âm thanh file.au
Nạp file âm thanh
AudioClip audioClip=
getAudioClip(getDocumentBase(), MusicFileName);
Applet và application
Applet là 1 ứng dụng nhỏ được xây dựng nhằm mục đích phân phối trên Web và được thực thi bên trong (nhúng vào) trình duyệt trong khi application được thực thi độc lập (standalone application).
Một applet phải được xây dựng 1 lớp con của lớp java.applet.Applet còn application thì không bị ràng buộc này.
Application được thực thi thông qua Java Interpreter (máy ảo Java, trình java.exe) trong khi applet phải được thực thi thông qua Browser có hỗ trợ Java hay trình appletviewer của môi trường Java.
Applet và Application
Thực thi Application bắt đầu từ main(...) trong khi applet bắt đầu thực thi bằng init().
Phương thức drawXXX dùng để xuất dữ liệu trong applet trong khi Application dùng System.out.print để xuất dữ liệu.
Applet phải bắt đầu bằng ít nhất 1 public class nếu không có thì sẽ có lỗi lúc biên dịch. Không bắt buộc phải có hàm main(...) trong applet. Nếu applet có hàm main(...) thì có thể chạy với 2 chế độ : (1) Chạy trong Browser, (2) Chạy dạng application. Còn application luôn phải có hàm main(...).
Bạn đang đọc truyện trên: AzTruyen.Top