Today, just about any software program that requires user interaction will have a graphical user interface. While the graphical user interface is the most visible part of a program, it typically is not the largest part. Nevertheless, a good GUI development tool can provide a large productivity increase for a programmer compared to hand developing the same code. Traditionally, GUI development tools were targeted at a specific windowing environment, such as Microsoft Windows, X, or Macintosh. Some GUI tools were cross-platform and generated code for more than one target platform. The problem with many cross-platform GUI tools is they are targeted to the least common denominator feature set of their target environments. This tends to produce user interfaces that are a compromise of what is possible with a single environment tool. Of course this has all changed with Java technology.
In its original 1.0 release, Java supported a set of user interface components called the Abstract Windowing Toolkit (AWT). In the 1.2 release, Java's GUI functionality was dramatically improved with the user interface components of the Java Foundation Classes (JFC). These components (nicknamed "Swing components ") are written in Java, without window-system-specific code. This permits a customizable look and feel without relying on the native windowing system and simplifies the deployment of applications. This feature gives users the ability to switch the look and feel of an application without restarting it and without the developer having to subclass the entire component set. The same Java application could, for instance, switch dynamically at run time into a Windows look and feel, an X look and feel, or the developer's own custom look and feel.
The JFC contains all the common components normally found in a user interface, including
Often, a GUI development tool will be packaged as part of a larger IDE suite. When selecting an IDE for Java development, you should be sure to select one that supports at least the Java Foundation Classes and the full JDK 1.1 or later release. In addition, you may wish to purchase additional user interface components, typically packaged as class libraries. The widespread use of Java has greatly increased the number of prepackaged GUI components available. There are hundreds of packages available from small shareware packages purchased off the net to sophisticated component collections from established software vendors . Here is just a small sampling of the GUI packages available on the market.
|Tool Name /Vendor||Languages Supported||Platforms||Comments|
|Chart.J Rogue Wave Software||Java||Any Java platform||Prebuilt and custom chart types|
|ILOG Jviews ILOG||Java||Any Java platform||Creates 2 D structured graphics displays like maps and network topologies|
|JWave Visual Numerics||Java||Any Java platform||2 D and 3 D graphics|
Supports Windows and Solaris. Rogue Wave was one of the first companies to start packaging and selling C++ class libraries and continues to expand its product offerings with a wide range of Java-based components. Chart.J includes JavaBeans components for use with a JavaBeans-aware graphical tools along with a programmatic interface that can be used to incorporate customizable, dynamic charts into Java applets or applications. Chart.J provides prebuilt chart types, or developers may use the charting primitives to create composite chart types by mixing and matching any combination of overlays. Chart.J's data model provides for dynamic updates of charted data, and built-in callback mechanisms provide drill-down capability for various portions of a chart.
For more information on Chart.J, see the Rogue Wave Software web page at http://www.roguewave.com.
Supports Windows, Solaris, and HP/UX. ILOG's JViews is a 100% Java class library for developing 2 D structured graphics diagrams. It complements existing GUI components (AWT, Beans, etc.) to create interfaces such as network topologies, maps, process control screens, or customized editors.
For more information on Jviews, see the ILOG web page at http://www.ilog.com.
Supports Windows and Solaris. JWave is a set of Java classes for creating basic presentation graphics and performing Visual Data Analysis (VDA) within an applet or application. Components use PV-WAVE as a graphic server to create the graphics. The PV-WAVE server can either run on a remote machine on your inter/intranet, or as a local process on your machine. Components produce static 2 D and 3 D graphics, animations, and 3 D VRML worlds . If you are already using PV-WAVE, you will find this package to be a must-have .
For more information on JWave, see the Visual Numerics web page at http://www.vni.com.