SwingApplet illustrates how it's possible to run a Swing-based
applet, as long as the Swing classes are in the browser's class
path.  In the Java 2 platform, Standard Edition, the Swing classes
are core, and thus are always in the class path.  For example,
you can run SwingApplet with this command:

   appletviewer SwingApplet.html

These instructions assume that this installation's version of appletviewer
command is in your path.  If it isn't, then you should either
specify the complete path to the appletviewer command or update
your PATH environment variable as described in the installation
instructions for the Java(TM) SE Development Kit.

