JCSP Applet Demonstrations
Author: Peter Welch

> # JCSP Applet Demonstrations

The following table gives links to several demonstration JCSP Applets. They illustrate a variety of animation effects and GUI controls. All make significant use of JCSP concurrency to support the GUI, the application-specific computation and the animation. The first group are slightly simpler than the second. All sources are in sub-folders of this (jcsp-demos) folder.

The left column links will run the applets using Sun's Java PlugIn (but please read the warning below). The right column runs the same applets using the native JVM supplied by your browser - this needs to be compatible at least with JDK1.1.5 (e.g. Netscape 4.6, IE 5).

Sun's Java Plug-In | Browser's Native JVM

Flasher | Flasher
Balls | Balls
Picasso | Picasso
MissionControl | MissionControl

Infect | Infect
Mandelbrot | Mandelbrot
Bounce | Bounce
Plasma | Plasma
Fireworks | Fireworks
MultiPong | MultiPong
Splat | Splat

All these applets may be run as applications - change to the `xxx` source folder, where `xxx` is one of the above applet names, and run the command: `java` `xxxMain`. For some reason, applications sometimes run more smoothly than their equivalent applets. Also, for some reason, all the animations (i.e. Balls, Infect, Mandelbrot, Bounce, Plasma and Splat) run much faster and more responsively under JDK1.1.x (where x >= 5) than under JDK1.2 (or JDK1.3/4) - see below.

### Warning - Don't Use the Plug-In Configured to Use the JDK1.2 (or 1.3/4) Runtime Environment!

Most of these applets make moderate to heavy use of animation. Currently, animations do not seem to be one of the strong features of JDK1.2 (nor JDK1.3/4) - they seem very slow compared with JDK1.1.

Our current recommendation is to download the PlugIn version 1.1.3, which installs the JRE1.1.8. If you already have the PlugIn version 1.2 (or above), it is recommended to configure it to use a JDK1.1.x run-time environment (where x >= 5). This can be done by firing up the "Java PlugIn Control Panel", clicking on the "Advanced" tab, selecting a 1.1 "Java Run Time Environment" (which must have been previously installed - e.g. by downoloading and installing the PlugIn version 1.1.3) and clicking the "Apply" button.

Note: the native JVMs provided by Netscape 4.6 and IE 5.0 support a JRE1.1 sufficiently high to run these applet demonstrations.

Note: sometimes, IE 5.0 throws an application error when trying to start an applet configured to use Sun's PlugIn .

Note: Sun's PlugIn 1.3 throws a `java.security.AccessControlException` when the applet thread tries to construct a new thread. Investigating ... version 1.1.3, (left column) or the native browser JVM (right column above).

Note: we should provide JCSP support for Swing and this is in hand (though in a slightly different way to the JCSP support for AWT).