Page 2 of 2
The first step is to become aware of the differences between the GUIs on each platform on which you intend to run your app. The next step is to shift your focus from designing a GUI for a proprietary platform to creating a generalized, Java-centric look and feel.
In an attempt to discover what this really means, Vertelney, Ryan, Wilson, and their associates held a design competition. They composed a design brief outlining the goals and invited a number of excellent Java developers and design experts to participate.
Screenshots of Java app design competition: http://java.sun.com/javaone/javaone98/sessions/T312/hv15_comp1.htm http://java.sun.com/javaone/javaone98/sessions/T312/hv15_1cm.htm http://java.sun.com/javaone/javaone98/sessions/T312/hv15_2cm.htm http://java.sun.com/javaone/javaone98/sessions/T312/hv16_comp2.htm http://java.sun.com/javaone/javaone98/sessions/T312/hv17_comp3.htm
They learned some interesting lessons from this exercise. One surprisingly non-trivial matter is that the color scheme used has an immediate affect on the way a user responds to an applet. Most GUI designers understand that it's best to use neutral colors in order to focus the user's attention on the purpose of the applet. If gray is the first color that comes to your mind, think again. These designers discovered that neutral colors comprise a bevy of interesting choices, from periwinkle to sage to goldenrod. For examples, check out the JFC's Organic (Santa Fe) and Organic (Vancouver) pluggable look and feel styles (see Resources, below). Another lesson learned was that it's best to stick with behaviors that have traditionally worked well on proprietary platforms. You can take examples of how menus, buttons, textareas, etc. work on Windows, the Macintosh, or various Unix GUIs, and follow their examples of logical and spatial organization when designing Java-centric interfaces -- just don't get caught in a single-platform-emulation mentality.
You're not finished developing your applet once you've designed the interface. The experts recommend testing, testing, and more testing. Run your applet on all the platforms you intend to support. (If you don't have a testing area with a machine representing each platform, set one up.) Check its appearance on monitors with different screen resolutions and with different display adapters that represent different color ranges. If you're designing apps to be used on NCs and Java-enabled gadgets, test them thoroughly on each non-desktop platform. After some experimentation, you may come up with a general design specification, which would make design decisions easier and testing time much shorter. For an excellent example of what a standard Java-centric interface design looks like, including a number of standard widgets, check out the Java Look and Feel screenshot (see Resources).
If you think you have your work cut out for you, you're not alone. JavaSoft engineers carefully consider feedback on Java GUI design from developers, and they have made some things easier in the later releases of the JFC, such as improving the usable ranges of colors and implementation of tabbed panes and scrollbars. In the future, they promise to conduct more usability testing, integrate more choices of color themes, incorporate a recognizable and consistent a system font, and even design an accessibility theme for the visually impaired.