Mauro Marinilli's Professional Java User Interfaces > books > Professional Java User Interfaces

Professional Java User Interfaces

"Professional Java User Interfaces"
Mauro Marinilli
April 2006,
707 Pages (55$)
John Wiley & Sons
ISBN 0471486965

Professional Java User Interfaces addresses Graphical User Interfaces from early design through development and maintenance. The book discusses GUI Design theory, GUI Design guidelines, usability, test-driven GUI Development, testing tools, GUI tuning, OO software design for complex GUI, GUI code generation Rich Client Frameworks for Java and even more. This work is the result of many years of professional practice within the Industry. The book has been used also as a textbook in various university courses.

Table of Contents

Brief Table of Contents

1. Putting GUI Development into Context
2. Introduction to User Interface Design
3. Java GUI Design
4. Recurring User Interface Designs
5. Iterative GUI Development with Java
6. Implementation Issues
7. Code Organization
8. Form-Based Rich Clients
9. Web-Based User Interfaces
10. J2ME User Interfaces
11. Java Tools and Technologies
12. Advanced Issues
13. Rich Client Platforms
14. The Personal Portfolio Application
15. An Example OO User Interface
16. An Example Ad-Hoc Component
A. A Questionnaire for Evaluating Java User Interfaces
B. A Questionnaire for Evaluating J2ME Applications

Extended Table of Contents


The interactivity thrill
The organization of the book
Book readers and personas

1. Putting GUI Development into Context

Focusing on users
A functional decomposition for user interfaces
Tool selection: the Java singularity
Organizational aspects
Early design
Lifecycle models, processes and approaches
UML notation

Part I:
User Interface Design


2. Introduction to User Interface Design

The human factor
Display organization
Interaction styles
Conceptual frameworks for UI design
Assessing the quality of a GUI

3. Java GUI Design

Java technology for GUIs
Cost-driven design
Exploring the design space for a point chooser
Design guidelines for the Java platform
The Java look and feel design guidelines

4. Recurring User Interface Designs

GUI area organization
Memory components
Lazy initialization
Preference dialogs
Waiting strategies
Flexible layout
Common dialogs
Command components
Navigation and keyboard support
Help support
Icons and images
Leveraging object-oriented programming

Part II:
Software Design

5. Iterative GUI Development with Java

Iterating wisely
Introduction to prototyping
Prototyping alternatives
GUI builders
Reusable prototyping widgets
GUI refactoring
Introduction to user interface testing
Software testing of Java GUIs
Usability testing of Java GUIs
JRE runtime management

6. Implementation Issues

Revisiting the abstract model
Business domain
Data input-output
Making objects communicate
Separating data from views
Interaction and control
Some design patterns for GUIs
GUI complexity boosters

7. Code Organization

Introducing software architectures
Some common GUI architectures
A three-layer organization for GUI code
Two examples of a three-layer implementation
The service layer

8. Form-Based Rich Clients

Reference functional model
Runtime data model
The cake-ordering application, the XP way

9. Web-Based User Interfaces

An overview of Web user interfaces
GUI design for the Web
Implementing Web applications with Java
From Web applications to rich clients

10. J2ME User Interfaces

Introduction to the MID profile
Designing MIDP GUIs
Designing navigation
An example custom item
An example ad-hoc item
An example application

11. Java Tools and Technologies

Introduction to tool selection
Evaluating open source software
SWT or Swing?
Other GUI technologies
Utility libraries
Test tools
Profiling tools
GUI builders
Presentation layer technologies
Declarative GUIs with Java

12. Advanced Issues

Building on top of existing libraries
Memory management for complex GUIs
Restructuring existing GUI code
Exploiting technology
Domain-specific and Little languages
The future of Java GUIs

Part III:

13. Rich Client Platforms

Introduction to Java rich client platforms
The NetBeans RCP
The Spring RCP
The Eclipse RCP
Choosing the best RCP for your needs
Legal issues
An example Eclipse RCP application

14. The Personal Portfolio Application

The scenario
Choosing a technology
An initial GUI design
The final GUI
The code
Deployment issues
An alternative, cost-driven implementation with JDNC

15. An Example OO User Interface

Implementing object-oriented user interfaces
Some utility classes
Configuration views
Interacting with the user
Managing user commands
An example application
An alternative implementation using Naked Objects

16. An Example Ad-Hoc Component

The Drawing Sandbox application
The Sandbox architecture
The Sandbox component
User interaction
The whole picture
Stressing the software design
Introducing JHotdraw


A Questionnaire for Evaluating Java User Interfaces

A Questionnaire for Evaluating J2ME User Interfaces

Download the Source Code

This file gathers all book sources packaged as an Eclipse project. Just rename it to .zip after download.Ant files are included as well.

Unfortunately the final version of the code presented in Chapter 13 got lost. Here is the latest version that I was able to restore. Just rename the file to .zip after download. I do apologize for the inconvenience.

External Dependencies

Some of the provided code needs external libraries in order to run.

Internal Dependencies

Some of the code relies on some other utility code provided in other chapters.
Originally two additional appendices were planned: These appendices were cut to keep the book short, nevertheless the related code is included as well. Code in is an extended version of the utility code provided throughout the book, and it is used only by the Personal Portfolio application in Chapter 14.

Buy the Book

Related Links

© 1998-2008 Mauro Marinilli