Mỗi Applet có 4 phương thức mặc định sẽ chạy tự động là init(), start(), stop() và destroy().
init – Hàm này được gọi trong quá trình khởi tạo applet. Trong quá trình khởi tạo, một đối tượng cụ thể của Applet được tạo ra. Ngoài ra, phương thức này cũng được sử dụng để nạp các đối tượng đồ họa, khởi tạo các biến và tạo các đối tượng.
124 start- Khi hàm start được gọi nó sẽ thực hiện thực thi chương trình applet trên trình duyệt của bạn. Ngoài ra hàm này cũng được dùng để khởi động lại applet sau khi tạm dừng.
stop – Hàm này ngược lại với start, nó sẽ dừng hoạt động của chương trình applet khi đang được thực thi.
destroy – Hàm này thực hiện đóng hẳn chương trình applet.
Ngoài các phương thức chính ở trên thì chương trình còn một số phương thức khác như repaint(), paint(), paintComponents(),… Phương thức repaint() được dùng để cập nhật lại toàn bộ hiển thị trên cửa sổ Applet. Hai phương thức còn lại sẽ được dùng để vẽ các hình ảnh, màu sắc, chữ, hình học,… lên Applet thông quá đối tượng Graphics.
Hình ảnh dưới đây sẽ mô tả một chu trình hoạt động của Applet và cách Applet được thực hiện.
Hình 7. 5 Chu trình sống của Applet
- Bước đầu tiên khi chạy một applet là quá trình “khởi tạo”.
- Sau khi khởi tạo xong, applet “bắt đầu quá trình làm việc”. Bước này có thể được lặp lại nếu trước đó applet bị tạm dừng. Ví dụ nếu người dùng chuyển đến một trang web mới và sau đó quay trở lại trang chứa applet.
- Sự khác biệt giữa init() và start() là start() có thể được gọi nhiều lần nhưng init() chỉ được gọi một lần duy nhất.
- Phương thức stop() được gọi khi người dùng rời trang web hoặc thu nhỏ trang web.
- Phương thức destroy() được gọi khi người dùng tắt trang web. Phương thức này giúp giải phòng bộ nhớ và một số công việc nhằm “dọn dẹp” tài nguyên.
125 - Để một Application được thực thi thì chúng ta phải dùng trình thông dịch java, trong khi đó applet có thể chạy được trên các trình duyệt có hỗ trợ java hoặc sử dụng AppletViewer.
- Quá trình thực thi của Application bắt đầu từ hàm main() còn Applet thì bắt đầu bằng hàm init().
- Application sử dụng lệnh system.out.println() để hiển thị kết quả ra màn hình console, trong khi đó Applet sử dụng phương thức drawString() để đưa một dòng chữ lên màn hình.
Vì Applet chạy trên web nên có một số giới hạn về hoạt động để chương trình Applet không làm ảnh hưởng đến hệ thống web của người sử dụng như không thể xóa file, lấy thông tin của hệ thống,… Cụ thể, Applet có một số hạn chế sau:
- Không thể đọc hoặc ghi file trên hệ thống file của người dùng.
- Chỉ có thể giao tiếp giữa hai website nếu hai website này đều có chương trình Applet.
- Không thể chạy bất kì chương trình gì trên hệ thống của người dùng.
- Không thể tải bất kì chương trình được lưu trữ trong hệ thống của người dùng.
Ví dụ về một chương trình Applet trên Netbeans:
Giả sử ta tạo một lớp AppletExample kế thừa lớp Applet : Bước 1 : Chọn New Project :
Bước 2 : Chọn Next -> nhập tên Project
Bước 3 : Tại cửa sổ bên trái, click phải chuột vào Project Applet Example và chọn New -> Other -> New File
126 Bước 4 : Chọn Next -> Nhập tên file : AppletExample
Bước 5 : Viết chương trình cho người dùng nhập tuổi vào TextField. Nếu tuổi nhỏ hơn 18 thì báo người dùng là ‘‘Chưa đủ tuổi bầu cử’’. Ngược lại, chương trình thông báo người dùng ‘‘Bạn đã đủ tuổi bầu cử’’.
Trong chương trình trên ta thấy cả hai phương thức init() và paint() đều được cài đè. Một ứng dụng frame được chạy khi nó có hàm main, còn applet được chạy khi nó có hàm init, paint, start, stop,… và đặc biệt nó phải được kế thừa từ đối tượng Applet. Khi Applet được chạy nó sẽ tự động gọi tới hàm init() để khởi tạo những gì có trong nó trước, sau đó sẽ gọi tới hàm paint() và thực hiện nội dung ở trong hàm này. Phương thức paint() được sử dụng để hiển thị các văn bản và các hình đồ họa lên màn hình. Nó được gọi bởi trình duyệt Web hoặc trình applet viewer bất cứ khi nào cần phải vẽ lên màn hình.
127