# Java - Cơ bản về Applet

Xin chào các bạn nhà phát triển Java! Tôi rất vui mừng được bắt đầu hành trình thú vị này cùng các bạn vào thế giới của Java Applets. Là một người đã dạy lập trình hơn một thập kỷ, tôi có thể đảm bảo với các bạn rằng mặc dù con đường phía trước có thể看起来 khó khăn,但它 cũng rất thú vị. Hãy c rolled lên tay áo và cùng nhau nhảy vào!

## Java Applet là gì?

Trước khi chúng ta bắt đầu lập mã, hãy hiểu xem applet thực sự là gì. Hãy tưởng tượng một applet là một chương trình Java nhỏ có thể nhúng vào một trang web. Nó giống như một ứng dụng nhỏ chạy trong trình duyệt của bạn, mang lại tính tương tác và nội dung động cho các trang HTML tĩnh.

## Vòng đời của một Applet trong Java

Mỗi applet đều trải qua một loạt các giai đoạn trong suốt cuộc đời của nó. Hiểu rõ vòng đời này rất quan trọng để phát triển các applet hiệu quả. Hãy cùng phân tích:

1. Khởi tạo (Initialization)
2. Bắt đầu (Starting)
3. Chạy (Running)
4. Dừng (Stopping)
5. Hủy (Destruction)

### Luồng của Vòng đời Applet Java

Để dễ hình dung hơn, hãy cùng nhìn vào bảng liệt kê các phương thức được gọi trong mỗi giai đoạn:

| Giai đoạn | Phương thức được gọi |
|-----------|----------------------|
| Khởi tạo | init() |
| Bắt đầu | start() |
| Chạy | paint() |
| Dừng | stop() |
| Hủy | destroy() |

Bây giờ, hãy cùng đi sâu hơn vào từng giai đoạn với một số ví dụ mã.

## Một Applet Java Đơn giản "Hello, World"

Hãy bắt đầu với ví dụ kinh điển "Hello, World". Điều này sẽ giúp chúng ta hiểu cấu trúc cơ bản của một applet.

```java
import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorldApplet extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello, World!", 50, 25);
    }
}

Hãy phân tích:

Java - Applet Basics

  1. Chúng ta nhập các lớp cần thiết từ các gói java.appletjava.awt.
  2. Lớp HelloWorldApplet của chúng ta kế thừa lớp Applet.
  3. Chúng ta ghi đè phương thức paint để vẽ thông báo "Hello, World!".

Lớp Applet

Lớp Applet là lớp siêu của tất cả các applet. Nó cung cấp một khung công tác cho việc thực thi applet, bao gồm các phương thức cho khởi tạo, bắt đầu, dừng và hủy applet. Hãy cùng nhìn vào một ví dụ đầy đủ hơn:

import java.applet.Applet;
import java.awt.Graphics;

public class LifeCycleApplet extends Applet {
    String message = "";

    public void init() {
        message += "Đang khởi tạo... ";
    }

    public void start() {
        message += "Đang bắt đầu... ";
    }

    public void stop() {
        message += "Đang dừng... ";
    }

    public void destroy() {
        message += "Đang hủy... ";
    }

    public void paint(Graphics g) {
        g.drawString(message, 20, 20);
    }
}

Applet này minh họa tất cả các phương thức vòng đời. Mỗi phương thức thêm vào chuỗi message, sau đó được hiển thị trong phương thức paint.

Gọi một Applet

Để chạy một applet, chúng ta cần nhúng nó vào một trang HTML. Dưới đây là cách bạn làm điều đó:

<html>
<body>
    <applet code="LifeCycleApplet.class" width="300" height="100">
        Trình duyệt của bạn không hỗ trợ thẻ <code>applet</code>.
    </applet>
</body>
</html>

Lấy các Tham số Applet

Applets có thể nhận các tham số từ trang HTML. Điều này cho phép applet có hành vi linh hoạt hơn. Hãy cùng xem cách làm:

import java.applet.Applet;
import java.awt.Graphics;

public class ParameterApplet extends Applet {
    public void paint(Graphics g) {
        String name = getParameter("name");
        g.drawString("Xin chào, " + name + "!", 50, 25);
    }
}

Và trong HTML:

<applet code="ParameterApplet.class" width="300" height="100">
    <param name="name" value="Alice">
</applet>

Xử lý Sự kiện

Applets có thể phản hồi các tương tác từ người dùng. Hãy tạo một applet đơn giản với nút nhấn:

import java.applet.Applet;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ButtonApplet extends Applet implements ActionListener {
    Button b;
    String message = "";

    public void init() {
        b = new Button("Nhấn vào tôi!");
        add(b);
        b.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) {
        message = "Nút đã được nhấn!";
        repaint();
    }

    public void paint(Graphics g) {
        g.drawString(message, 50, 50);
    }
}

Applet này tạo một nút và phản hồi các lần nhấn bằng cách cập nhật thông báo.

Hiển thị Ảnh

Applets cũng có thể hiển thị ảnh. Dưới đây là một ví dụ đơn giản:

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

public class ImageApplet extends Applet {
    Image img;

    public void init() {
        img = getImage(getDocumentBase(), "myimage.jpg");
    }

    public void paint(Graphics g) {
        g.drawImage(img, 0, 0, this);
    }
}

Applet này tải một ảnh từ cùng thư mục với tệp HTML và hiển thị nó.

Phát Âm thanh

Cuối cùng, hãy xem cách applets có thể phát âm thanh:

import java.applet.Applet;
import java.applet.AudioClip;

public class AudioApplet extends Applet {
    AudioClip clip;

    public void init() {
        clip = getAudioClip(getCodeBase(), "mysound.au");
    }

    public void start() {
        clip.play();
    }

    public void stop() {
        clip.stop();
    }
}

Applet này tải một tệp âm thanh và phát nó khi applet bắt đầu, dừng khi applet dừng.

Và thế là xong, các bạn! Chúng ta đã bao quát các cơ bản của Java Applets, từ vòng đời của chúng đến xử lý sự kiện, hiển thị ảnh và phát âm thanh. Nhớ rằng, thực hành là cách tốt nhất để hoàn thiện kỹ năng, vì vậy đừng ngại thử nghiệm với các ví dụ này và tạo ra các applet riêng của bạn. Chúc các bạn lập mã vui vẻ!

Credits: Image by storyset