You are previewing Java GUI Development: The Authoritative Solution.
O'Reilly logo
Java GUI Development: The Authoritative Solution

Book Description

Java GUI Development covers the Java 2 AWT, JFC, and Swing Toolkit technologies for GUI programming. It provides professional developers and software engineers with 1) a clear understanding of the conceptual framework behind Java 2 GUI tools, 2) descriptions of Java GUI idioms, and 3) practical programming techniques proven to work with these tools. This approach enables developers to solve difficult GUI programming tasks faster, write tighter and faster code, and implement more sophisticated GUI designs.

Table of Contents

  1. Copyright
    1. Dedication
  2. Preface
  3. About the Author
  4. Acknowledgments
  5. Tell Us What You Think!
  6. Introduction
    1. Book Content and Organization
    2. Audience
    3. Conventions Used in This Book
    4. Finding the Code Examples From the Book
  7. 1. UI Programming Concepts
    1. Designing for the Target Audience
    2. Creating Abstraction in Engineering Design
    3. The Model-View-Controller Idiom
    4. Summary
  8. 2. Introducing the Java Foundation Classes
    1. The Big Picture
    2. The Abstract Windowing Toolkit
    3. Platform-Independence
    4. AWT Components
    5. The AWT Component Class
    6. AWT Containers
    7. Layout Managers
    8. The Java Foundation Classes
    9. Lightweight Components
    10. Swing's Pluggable Look-and-Feel
    11. The Delegation Event Model
    12. The JFC Containment Model
      1. Layered Panes
      2. Glass Panes
    13. The JFC and Swing Class Hierarchies
    14. The JFC Model Architecture
    15. Summary
  9. 3. Basic Program Structure
    1. Program Building Blocks
    2. Creating an Application
      1. Subclassing java.awt.Frame
      2. Subclassing java.awt.Panel
      3. Starting and Stopping Your Application
    3. Using Lightweight Containers
    4. Creating an Applet
    5. Programs That Are Both Applications and Applets
    6. Summary
  10. 4. AWT Concepts and Architecture
    1. AWT Components
    2. The java.awt.Component Class
      1. Component Appearance
      2. Component Location
      3. Component Sizing
      4. Component Visibility
      5. Component Responsiveness to Events
      6. Component Cursors
      7. Rendering Components
    3. The java.awt.Container Class
    4. Adding Components to a Container
      1. Using Nested Containers for Organization
      2. How AWT Containers Store Children
      3. Front-to-Back Component Ordering in Containers
    5. Summary
  11. 5. The AWT Components
    1. The AWT Components
      1. Buttons
      2. Check Boxes
      3. Choices
      4. Dialogs
      5. Labels
      6. Lists
      7. Menus
      8. Text Areas and Text Fields
    2. Summary
  12. 6. Swing Concepts and Architecture
    1. The Swing Component Tool Set
    2. The javax.swing.JComponent Class
    3. Making Swing Components Lightweight
    4. Abstractions Encapsulated by the JComponent Class
    5. Swing Containers
      1. Limitations of the AWT Containment Model
    6. The Swing Container Abstraction
    7. The JRootPane Container
    8. The JLayeredPane Class
    9. Lightweight and Heavyweight Containers
    10. Configuring Look-and-Feel
    11. Summary
  13. 7. The Swing Components
    1. The Swing Lightweight Component Tool Set
      1. Buttons
      2. Check Boxes
      3. Radio Buttons
      4. Combo Boxes
      5. File Choosers
      6. Labels
      7. Lists
      8. Menus and Menu Bars
      9. Progress Indicators
      10. Sliders
      11. Split Panes
      12. Tabbed Panes
      13. Text Components
      14. Text Fields
      15. Password Fields
      16. Text Area
      17. Editor Panes
      18. Text Panes
      19. ToolTips
      20. Trees
    2. Summary
  14. 8. Layout Managers
    1. The Role of the Layout Manager
    2. The FlowLayout Class
    3. The GridLayout Class
    4. The BorderLayout Class
    5. The CardLayout
    6. The BoxLayout Class
    7. The GridBagLayout Class
      1. gridx and gridy
      2. gridwidth and gridheight
      3. fill
      4. anchor
      5. insets
      6. ipadx and ipady
      7. weightx and weighty
    8. Collaboration Between Containers and Layout Managers
    9. Summary
  15. 9. Events and Event Handling
    1. Events
    2. Event Type Hierarchy
    3. Event Types
      1. AWT Event Types
      2. Swing Event Types
    4. Handling Events
      1. Delivering Events
      2. Event Listeners
      3. AWT and Swing Events Are Complementary
      4. A Sample Event Handler
    5. Adapters
    6. Inner Classes
      1. Named Inner Classes
      2. Anonymous Inner Classes
    7. Combining Event Sources and Listeners
    8. Notifying Multiple Listeners
    9. Using AWT Events
      1. Component and Container Events
      2. Focus Events
      3. Key Events
      4. Mouse Events
      5. Consuming Input Events
      6. Paint Events
      7. Window Events
      8. Item Events
      9. Text Events
      10. Adjustment Events
    10. Using Swing Events
      1. Ancestor Events
      2. Caret Events
      3. Change Events
      4. Hyperlink Events
      5. Internal Frame Events
      6. List Data Events
      7. List Selection Events
      8. Menu Events
      9. Pop-up Menu Events
      10. Tree Expansion Events
      11. Tree Selection Events
      12. Tree Model Events
      13. Menu Key Events
      14. Menu Drag Mouse Events
    11. Swing Action Objects
    12. Summary
  16. 10. Models
    1. Identifying and Targeting Abstractions
    2. Utilizing the MVC Paradigm
    3. The Swing Model Architecture
      1. Integrating the View and Controller
    4. Swing Model Anatomy
      1. Swing Component Support for MVC
      2. Supporting Events and Event Handling
      3. Two Kinds of Models
      4. Distinguishing Between Types of Models
      5. Dual Context Models
      6. Where and When To Use Models
        1. Swing Models and Their Related Types
      7. Swing Models
        1. ButtonModel
        2. ComboBoxModel and MutableComboBoxModel
        3. SingleSelectionModel
        4. TableModel and TableColumnModel
        5. TreeModel and TreeSelectionModel
      8. Defining Your Own Models
      9. Summary
  17. 11. Graphics
    1. The AWT Graphics Model
      1. Obtaining Graphics Objects for Drawing
      2. Disposing of Graphics Instances
    2. The Graphics Class
    3. Using Graphics for Basic Drawing
      1. Drawing Lines
      2. Drawing Ovals
      3. Drawing Polygons
      4. Drawing Rectangles
      5. Drawing Arcs
      6. Drawing Text
    4. Clipping
    5. Translating the Graphics Origin
    6. Graphics Modes
    7. How Components Are Painted
      1. Events Trigger Painting
      2. The AWT Paint Model
      3. The Swing Paint Model
    8. Summary
  18. 12. Fonts and Colors
    1. Organization of Color Support Classes
    2. Color Models
      1. The Index Color Model
      2. The Direct Color Model
    3. Using Colors
      1. Using the java.awt.Color Class
      2. Using System Colors
    4. Fonts
      1. Font Metrics
    5. Summary