Java rich internet applications (RIA) are applications that have traits similar to desktop applications, but are deployed via the internet. Java RIAs may be developed and deployed as Java applets or Java Web Start applications.
In the past, the decision of whether to deploy a Java rich internet application inside the browser as an applet, or outside the browser as a Java Web Start application, could significantly impact the design of the application. With the next generation Java Plug-in, this decision has been greatly simplified.
Traditionally, applications construct their user
interfaces, including the top-level
Frame, in the
main method. This programming
style prevents easy re-deployment of the application in the browser, because it
assumes that the application creates its own
Frame. When running in the browser as
an applet, the applet is the top level container that should hold the user
interface for the application. A top-level
Frame is not needed.
Use component-based architecture when designing your Java rich internet application.
Try to organize its
functionality into one or more components that can be composed together.
In this context, the term "component" refers to a GUI element that is a subclass of the AWT
Component class, the Swing
or another subclass. For example, you could have a top
JPanel which contains other UI components in it
(like a combination of more nested JPanels
and text fields, combo boxes etc.). With such a design, it becomes relatively easy to deploy the
core functionality as an applet or a Java Web Start application.
To deploy as a Java applet, you just need
to wrap the core functionality in an
and add the browser specific functionality,
if necessary. To deploy as a Java Web Start application, wrap the functionality
The Rich Internet Applications Decision Guide contains detailed information to help you decide whether to deploy your code as a Java applet or Java Web Start application.
This trail discusses the development and deployment of RIAs. See the Client JRE Capabilities - Quick Reference page for capabilities introduced in various versions of the client Java Runtime Environment (JRE) software.