Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

Designing a cross-platform look and feel with Java

Learn how to fulfill the promise of "Write Once, Run Anywhere" with one-time GUI design methods

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

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.

About the author

A 10-year veteran of the Internet, Mariva H. Aviram is an Internet consultant and writer covering the computer industry. Mariva's published works include articles in c|net, NetscapeWorld, and InfoWorld. Recently, Mariva wrote the XML For Dummies Quick Reference, which is pending publication by IDG Books Worldwide. For more information, visit http://www.mariva.com/.
  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources
  • JavaSoft Senior Interface Engineer Chris Ryan's "Designing the Java Look and Feel" JavaOne Session Slides http://java.sun.com/javaone/javaone98/sessions/T312/cr_index.htm
  • JavaSoft's Java Foundation Classes page http://java.sun.com/products/jfc/
  • PersonalJava targets non-desktop computers http://www.javaworld.com/jw-04-1998/jw-04-pjava.html
  • Organic Santa Fe look and feel http://java.sun.com/javaone/javaone98/sessions/T312/hv19_organicsf.htm
  • Organic Vancouver look and feel http://java.sun.com/javaone/javaone98/sessions/T312/hv20_organicva.htm
  • Java look and feel screenshot http://java.sun.com/javaone/javaone98/sessions/T312/hv22_jlf.htm