# 定义 Applet 子类

> 原文： [https://docs.oracle.com/javase/tutorial/deployment/applet/subclass.html](https://docs.oracle.com/javase/tutorial/deployment/applet/subclass.html)

每个 Java applet 都必须定义`Applet`或`JApplet`类的子类。在 Hello World 小程序中，此子类称为`HelloWorld`。以下是 [``HelloWorld``](examples/applet_HelloWorld/src/HelloWorld.java)类的来源。

```
import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;

public class HelloWorld extends JApplet {
    //Called when this applet is loaded into the browser.
    public void init() {
        //Execute a job on the event-dispatching thread; creating this applet's GUI.
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    JLabel lbl = new JLabel("Hello World");
                    add(lbl);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
    }
}

```

Java applet 继承了`Applet`或`JApplet`类的重要功能，包括与浏览器通信并向用户提供图形用户界面（GUI）的功能。

将使用 Swing（Java 的 GUI 工具包）中的 GUI 组件的 applet 应该扩展 [`javax.swing.JApplet`](https://docs.oracle.com/javase/8/docs/api/javax/swing/JApplet.html) 基类，它提供与 Swing 的 GUI 工具的最佳集成。

`JApplet`提供了一个根窗格，它与 Swing 的`JFrame`和`JDialog`组件具有相同的顶级组件结构，而`Applet`只提供了一个基本面板。有关如何使用此功能的更多详细信息，请参见[如何使用根窗格](../../uiswing/components/rootpane.html)。

当 applet 不使用 Swing 的 GUI 组件时，它可以扩展 [`java.applet.Applet`](https://docs.oracle.com/javase/8/docs/api/java/applet/Applet.html) 类。