Java Look & Feel Design Guidelines, 1st edition
Authors: Sun Microsystems,  Inc, Javasoft
Venue:  (1999)

From the Book:Java Look and Feel Design Guidelines provides essential information for anyone involved in the process of creating cross-platform JavaTM applications and applets. In particular, this book offers design guidelines for software that uses the JavaTM Foundation Classes (JFC) together with the Java look and feel. (Unless specified otherwise, this book uses "application" to refer to both applets and applications.) Who Should Use This Book Although the human interface designer and the software developer might well be the same person, the two jobs require different tasks, skills, and tools. Primarily, this book addresses the designer who chooses the interface components, lays them out in a set of views, and designs the user interaction model for an application. This book should also prove useful for developers, technical writers, graphic artists, production and marketing specialists, and testers who participate in the creation of Java applications and applets. Java Look and Feel Design Guidelines focuses on design issues and human-computer interaction in the context of the Java look and feel. It also attempts to provide a common vocabulary for designers, developers, and other professionals. If you require more information about technical aspects of the Java Foundation Classes, visit the Swing Connection web site at http://java.sun.com or http://java.sun.com/products/jfc. The guidelines provided in this book are appropriate for applications and applets that run onpersonal computers and network computers. They do not address the needs of software that runs on consumer electronic devices. How This Book Is Organized Java Look and Feel Design Guidelines includes the following chapters: Chapter 1, "The Java Look and Feel," introduces the design concepts underlying the Java look and feel and offers a quick visual tour of an application and an applet designed with the JFC components and the Java look and feel. Chapter 2, "Java Foundation Classes," provides an overview of the Java Foundation Classes, suggests effective ways to use the JFC components, and describes the concept of pluggable look and feel designs. Chapter 3, "Design Considerations," discusses some of the fundamental challenges of designing Java look and feel applications and offers recommendations for applet design, accessibility, internationalization, and localization. Chapter 4, "Visual Design," provides suggestions for the use of the Java look and feel themes mechanism to change color and fonts in your application, provides guidelines for the capitalization of text in the interface and makes recommendations for layout and visual alignment. Chapter 5, "Designing Application Graphics," discusses the use of cross-platform color, the creation of application graphics to fit with the Java look and feel, and the design of graphics to enhance corporate and product identity. Chapter 6, "Behavior," tells how users of Java look and feel applications utilize the mouse, keyboard, and screen. It provides recommendations regarding user input and human-computer interaction, including a discussion of drag and drop operations. Chapter 7, "Windows, Panes, and Frames," discusses and makes recommendations for the use of primary, secondary, and utility windows as well as scroll panes, tabbed panes, and split panes. Chapter 8, "Dialog Boxes," describes and makes recommendations for the use of dialog boxes, the supplied alert boxes, and the color chooser. Chapter 9, "Menus and Toolbars," presents details about and makes suggestions for the use of drop-down menus, contextual menus, toolbars, and tool tips. Chapter 10, "Basic Controls," covers the use of controls such as command buttons, toggle buttons, checkboxes, radio buttons, sliders, and combo boxes. It also describes progress bars and provides suggestions for their use. Chapter 11, "Text Components," explains and makes recommendations for the use of the JFC components that control the display and editing of text. Chapter 12, "Lists, Tables, and Trees," discusses and makes recommendations for the use of lists, tables, and tree views. Appendix A, "Keyboard Navigation, Activation, and Selection," contains tables that specify keyboard sequences for the components of the Java Foundation Classes. The Glossary defines important words and phrases found in this book. They appear in boldface at first occurrence. Graphic Conventions Screen shots in this book illustrate the use of JFC components in applications with the Java look and feel. Because such applications typically run inside windows provided and managed by the native platform, which might include, among many others, Microsoft Windows, Macintosh, or CDE (Common Desktop Environment), the screen shots show assorted styles of windows and dialog boxes. Throughout the text, symbols are used to call your attention to design guidelines. Each type of guideline is identified by a unique symbol. Java Look and Feel Standards Requirements for the consistent appearance and compatible behavior of Java look and feel applications. These standards promote flexibility and ease of use in cross-platform applications and the creation of applications that support all users, including users with physical and cognitive limitations. These standards require you to take actions that go beyond the provided appearance and behavior of the JFC components. Occasionally, you might need to violate these standards. In such situations, use your discretion to balance competing requirements. Be sure to engage in user testing to validate your judgments. Cross-Platform Delivery Guidelines Recommendations for dealing with colors, fonts, keyboard operations, and other problems that arise when you want to deliver your application to a variety of computers running a range of operating systems. Internationalization Guidelines Advice for creating applications that can be adapted to the global marketplace. Implementation Tips Technical information and useful tips of particular interest to the programmers who are implementing your application design. Related Books and Web Sites This book does not provide detailed discussions of human interface design principles, nor does it present much general information about application design. However, many excellent references are available on topics such as fundamental principles of human interface design, design issues for specific (or multiple) platforms, and the issues relating to accessibility, internationalization, and applet design. Design Principles The resources in this section provide information on the fundamental concepts underlying human-computer interaction and interface design. Baecker, Ronald M., William Buxton, and Jonathan Grudin. Readings in Human-Computer Interaction: Toward the Year 2000, 2nd ed. Morgan Kaufman Publishing, 1995. A collection of research from graphic and industrial design, and cognition and group process, this volume addresses the efficiency and adequacy of human interfaces. Hurlburt, Allen. The Grid: A Modular System for the Design and Production of Newspapers, Magazines, and Books. John Wiley Sons, 1997. This is an excellent starting text. Although originally intended for print design, this book contains many guidelines that are applicable to software design. IBM Human-Computer Interaction Group. "IBM Ease of Use." Available: http://www.ibm.com/ibm/easy.This web site covers many fundamental aspects of human interface design. Laurel, Brenda, ed. The Art of Human-Computer Interface Design. Addison-Wesley, 1990. Begun as a project inside Apple, this collection of essays from computer industry experts explores strategies and reasoning behind human-computer interaction and looks at the future of the relationship between humans and computers. It surveys diverse design techniques and examines work in drama and narrative, industrial design, animation, and cognitive and interpersonal psychology. Mullet, Kevin, and Darrell Sano. Designing Visual Interfaces: Communication-Oriented Techniques. Prentice-Hall, 1995. This volume covers fundamental design principles, common mistakes, and step-by-step techniques in several visual aspects of interface design: elegance and simplicity; scale, contrast, and proportion; organization and visual structure; module and program; image and representation; and style. Nielsen, Jakob. Usability Engineering. Academic Press, 1994. This classic contains a substantial chapter on international user interfaces, including gestural interfaces, international usability engineering, guidelines for internationalization, resource separation, and interfaces for more than one locale. Norman, Donald A. The Design of Everyday Things. Doubleday, 1990. A well-liked, amusing, and discerning examination of why some products satisfy users while others only baffle and disappoint them. Black-and-white photographs and illustrations throughout complement the astute analysis. Shneiderman, Ben. Designing User Interface Strategies for Effective Human-Computer Interaction. 3rd Edition. Addison Wesley, 1997. The third edition of the best seller, which provides a complete, current, and authoritative introduction to user interface design. Shneiderman writes new chapters on the World Wide Web, information visualization, and computer-supported cooperative work and expands earlier work on development methodologies, evaluation techniques, and user-interface-building tools. Tognazzini, Bruce. TOG On Interface. Addison-Wesley, 1992. Based on a human interface column that Tog wrote for Apple developers, this book delves into the pivotal challenges of user interface design, including the difficulties inherent in multimedia software. Tufte, Edward R. Envisioning Information. Graphics Press, 1990. One of the best books on graphic design, this volume catalogues instances of superb information design, with an emphasis on maps and cartography. Tufte culls examples from Galileo's observations of Saturn, a three-dimensional map of a Japanese shrine, a visual proof of Pythagoras' theorem, color studies by the artist Joseph Albers, and a New York train schedule, and he explicates the concepts behind their implementation. Tufte, Edward R. The Visual Display of Quantitative Information, reprint edition. Graphics Press, 1992. Tufte explore the issues relevant to the graphical presentation of statistical information in charts and graphs. The design of the book exemplifies its principles: exquisite typography and layout, and splendid weaving of clear writing and apt graphical examples. Tufte, Edward R. Visual Explanations: Images and Quantities, Evidence and Narrative. Graphics Press, 1997. As the third volume in Tufte's series on information display, this book focuses on data that changes over time. Tufte explores the explosion of the space shuttle Challenger (which could have been prevented, Tufte argues, by better information display on the part of the rocket's engineers), magic tricks, a cholera epidemic in 19th-century London, and the principle of using "the smallest effective difference" to display distinctions in data. Design for Specific Platforms This section provides a list of informative resources on application design for the CDE, IBM, Java, Macintosh, and Microsoft Windows platforms. CDE Three volumes address the needs of designers and related professionals creating applications using CDE and Motif 2.1. The Open Group. CDE 2.1/Motif 2.1Style Guide and Glossary, 1997. The Open Group, 1997. CDE 2.1/Motif 2.1Style Guide Reference. The Open Group, 1997. CDE 2.1/Motif 2.1Style Guide Certification Checklist. They can be ordered from the Open Group at http://www.opengroup.org/public/pubs/catalog/mo.htm. IBM Object-oriented interface design: IBM Common User Access Guidelines. Que Corp, 1992. Available: http://www.ibm.com/ibm/hci/guidelines/design/ui_design.html. This book is out of print but available from most or all IBM branch offices. A small portion of the IBM printed book Common User Access Guidelines is intertwined with a modest amount of more current material in this IBM web site. Java Eckstein, Robert, Mark Loy, and Dave Wood. Java Swing. O'Reilly Associates, 1998. An excellent introduction to the most current developments in Java interface technology, this book discusses how (and why) to use Swing components. It also provides comprehensive documentation on the Swing and Accessibility application programming interfaces. A detailed chapter explains how to create a custom look and feel. Geary, David M. Graphic Java 1.2: Mastering the JFC. 3 vols. Prentice Hall, 1998. A comprehensive guide to the Java Foundation Classes, these three volumes describe the skills needed to build professional, cross-platform applications that take full advantage of the Java Foundation Classes. The books include chapters on drag and drop, graphics, colors and fonts, and image manipulation. Geary covers double buffering, sprite animation, clipboard and data transfer, and other advanced topics. Topley, Kim. Core Java Foundation Classes. Prentice-Hall Computer Books, 1998. After a tour of the JFC/Swing packages, the book explains how to build basic Swing applications, focusing on layout managers (which control the arrangement of JFC components on screen) and basic graphics programming. The book also describes menus and the toolbar, keyboard handling (and mouseless operation), dialog boxes, tree and table components, and the creation of multiple document interface (MDI) applications. Macintosh Macintosh Human Interface Guidelines. Addison-Wesley, 1992. This volume is the official word on Macintosh user-interface principles. It includes a superb bibliography with titles on animation, cognitive psychology, color, environmental design, graphic and information design, human-computer design and interaction, language, accessibility, visual thinking, and internationalization. Apple Computer, Inc. Mac OS 8 Human Interface Guidelines. Available: http://developer.apple.com/techpubs/mac.This site offers a supplement to Macintosh Human Interface Guidelines. Microsoft Windows Windows Interface Guidelines for Software Design. Microsoft Press, 1995. Available: http://www.microsoft.com/win32dev/uiguide. The official book on Microsoft user interface design is essentially a specification for designers who would like to save training time, increase productivity, and enhance user confidence in their programs. These guidelines are available in print and a modest portion of them is on the World Wide Web. You can download an addendum to the Microsoft Windows Interface Guidelines for Software Design book at http://msdn.microsoft.com/developer/userexperience/winuiguide.html. Design for Multiple Platforms The books in this section discuss issues relevant to designing software to run on many operating systems. McFarland, Aland, and Tom Dayton (with others). Design Guide for Multiplatform Graphical User Interfaces (LP-R13). Bellcore, 1995. (Available only from Bellcore. Call 800-521-2673 from US Canada, +1-908-699-5800 from elsewhere.) This is an object-oriented style guide with extensive and detailed guidelines, and a good explanation of object-oriented user interface style from the user's perspective. McFarland and Dayton primarily provide a very detailed reference although explanations of overall style of GUI objects and interaction are also included. Marcus, Aaron, Nick Smilonich, and Lynne Thompson. The Cross-GUI Handbook: For Multiplatform User Interface Design. Addison-Wesley, 1995. This source is handy for anyone designing software to run on a large number of platforms. The book describes the graphical user interfaces of Microsoft Windows and Windows NT, OSF/Motif, NeXTSTEP, IBM OS/2, and Apple Macintosh. The text includes design guidelines for portability and migration, and recommendations for handling contradictory or inadequate human interface guidelines. Design for Internationalization This section lists resources on designing your software for adaptation to the global marketplace. Fernandes, Tony. Global Interface Design: A Guide to Designing International User Interfaces. Boston AP Professional, 1995. Fernandes addresses developers of internet software designed for a global market. He explains what needs to be considered about languages and their variations, visual components, national formats, familiar objects, taboos, aesthetics, and ergonomic standards. Guide to Macintosh Software Localization. Addison-Wesley, 1992. A thorough and thoughtful discussion of the internationalization and localization processes that should prove helpful for developers on any platform. Kano, Nadine. Developing International Software for Windows 95 and Windows NT. Microsoft Press, 1993. Kano presents Microsoft's guidelines for creating international software targeting an audience of Microsoft programmers and interface designers with knowledge of Microsoft Windows coding techniques and C++. The work contains information on punctuation, sort orders, locale-specific code-page data, DBCS/Unicode mapping tables, and multilingual API functions and structures. Luong, Tuoc V., James S.H. Lok, and Kevin Driscoll. Internationalization: Developing Software for Global Markets. John Wiley Sons, 1995. The Borland internationalization team describes its procedures and methods with a focus on testing and quality assurance for translated software. This hands-on guide tells how to produce software that runs anywhere in the world without requiring expensive recompiling of source code. The authors go beyond theory to provide actual solutions to everyday problems. Nielsen, Jakob, and Elisa del Galdo. International User Interfaces. John Wiley Sons, 1996. This book explores what user interfaces can and must do to become commercially viable in the global marketplace. Contributors explore issues such as international usability engineering, developing a cultural model, managing a multiple-language document system, and an intelligent lexical management system for multilingual machine translation. The book includes chapters on cultural issues that affect training, breaking the language barrier with graphics, and Arab and Chinese text displays. O'Donnell, Sandra Martin. Programming for the World: A Guide to Internationalization. Prentice-Hall, 1994. This handbook explains how to modify computer systems to accommodate the needs of international users. O'Donnell takes readers on a tour of the many linguistic and cultural conventions used throughout the world, discussing how to break old programming habits to design with the flexibility needed to handle differing user needs. More focused on theory than practice, this book explains why certain practices spell trouble when it comes to localizing products. Uren, Emmanuel, Robert Howard, and Tiziana Perinotti. Software Internationalization and Localization: An Introduction. Van Nostrand Reinhold, 1993. This professional guide to software adaptation aims at enabling localized software to do the same things as the original software while integrating local user rules and conventions. Design for Accessibility These resources explore considerations relevant to software designing software to support all users, including those with physical and cognitive limitations. Sun Microsystems, Inc. Accessibility Quick Reference Guide. Available: http://www.sun.com/tech/access/access.quick.ref.html. This site defines accessibility, tells why it is so important, lists steps to check and double check your product for accessibility, and offers tips for making applications more accessible. Bergman, Eric, and Earl Johnson. "Towards Accessible Human Interaction." In Advances in Human-Computer Interaction, edited by Jakob Nielsen, vol.5. Ablex Publishing, 1995. Available: http://www.sun.com/tech/access/updt.HCI.advance.html. This article discusses the relevance of accessibility to human interface designers, points out its economic and social benefits as well as the legal requirements for it. It also explores the process of designing for ranges of user capabilities with useful discussions of the concept of universal design and the inclusion of people with disabilities in the design process. It provides design guidelines for accessibility, with background and guidelines for physical disabilities such as repetitive strain injuries (RSI), low vision, blindness, and hearing impairment. It also contains an excellent list of additional sources on accessibility issues. Schwerdtfeger, Richard S. IBM Guidelines for Writing Accessible Applications Using 100% Pure Java. IBM Corporation 1998. Available: http://www.austin.ibm.com/sns/access.html. This web site presents principles of accessibility, a checklist for software accessibility and a list of references and resources. In addition, it provides discussions of accessibility for the web and for Java applications. Schwerdtfeger, Richard S. Making the GUI Talk, BYTE. 1991 Available: ftp://ftp.software.ibm.com/sns/sr-os2/sr2doc/guitalk.txt. This speech deals with off-screen model technology and GUI screen readers. Sun Microsystems, Inc. "Enabling Technologies." Available: http://www.sun.com/access. This web site includes a primer on the Java platform and Java accessibility and describes the support for assistive technologies now provided by Swing components of the Java Foundation classes.%0