Swing is a fully-featured user interface development kit for Java applications. Building on the foundations of the Abstract Window Toolkit (AWT), Swing enables cross-platform applications to use any of several pluggable look-and-feels. Swing developers can take advantage of its rich, flexible features and modular components, building elegant user interfaces with very little code.
This second edition of "Java Swing" thoroughly covers all the features available in Java 2 SDK 1.3 and 1.4. More than simply a reference, this new edition takes a practical approach. It is a book by developers for developers, with hundreds of useful examples, from beginning level to advanced, covering every component available in Swing.
All these features mean that there's a lot to learn. Even setting aside its platform flexibility, Swing compares favorably with any widely available user interface toolkit--it has great depth. Swing makes it easy to do simple things but is powerful enough to create complex, intricate interfaces.
"Java Swing," 2nd edition includes: A new chapter on Drag and Drop Accessibility features for creating a user interface meeting the needs of all users Coverage of the improved key binding infrastructure introduced in SDK 1.3 A new chapter on JFormattedTextField and input validation Mac OS X coverage and examples Coverage of the improved focus system introduced in SDK 1.4 Pluggable Look-and-Feel coverage Coverage of the new layout manager, SpringLayout, from SDK 1.4 Properties tables that summarize important features of each component Coverage of the 1.4 Spinner component Details about using HTML in components A new appendix listing bound actions for each component A supporting web site with utilities, examples, and supplemental materials Whether you're a seasoned Java developer or just trying to find out what Java can do, you'll find "Java Swing," 2nd edition an indispensable guide.
Preface 1. Introducing Swing What Is Swing? Swing Features Swing Packages and Classes The Model-View-Controller Architecture Working with Swing The Swing Set Demo Reading This Book 2. Jump-Starting a Swing Application Upgrading Your AWT Programs A Simple AWT Application Including Your First Swing Component Beyond Buttons What Is an Internal Frame? A Bigger Application 3. Swing Component Basics Understanding Actions Graphical Interface Events Graphics Environments Sending Change Events in Swing The JComponent Class Responding to Keyboard Input 4. Labels and Icons Labels Working with Images Support for HTML Icons Implementing Your Own Icons Dynamic Icons The ImageIcon Class 5. Buttons The ButtonModel Interface The DefaultButtonModel Class The AbstractButton Class The JButton Class The JToggleButton Class The JToggleButton.ToggleButtonModel Class The JCheckBox Class The JRadioButton Class The ButtonGroup Class 6. Bounded-Range Components The Bounded-Range Model The JScrollBar Class The JSlider Class The JProgressBar Class Monitoring Progress 7. Lists, Combo Boxes, and Spinners Lists Representing List Data Handling Selections Displaying Cell Elements The JList Class Combo Boxes The JComboBox Class Spinners Spinner Models Spinner Editors 8. Swing Containers A Simple Container The Root Pane Basic RootPaneContainers The JFrame Class The JWindow Class The JApplet Class 9. Internal Frames Simulating a Desktop The JInternalFrame Class The JDesktopPane Class The DesktopManager Interface Building a Desktop 10. Swing Dialogs The JDialog Class The JOptionPane Class Using JOptionPane Simple Examples Getting the Results A Comparison: Constructors Versus Static Methods Using Internal Frame Dialogs with JDesktopPane 11. Specialty Panes and Layout Managers The JSplitPane Class The JScrollPane Class The JTabbedPane Class Layout Managers The SpringLayout Class Other Panes 12. Chooser Dialogs The JFileChooser Class The File Chooser Package The Color Chooser The JColorChooser Class Developing a Custom Chooser Panel Developing a Custom Preview Panel Developing a Custom Dialog 13. Borders Introducing Borders Painting Borders Correctly Swing Borders Creating Your Own Border 14. Menus and Toolbars Introducing Swing Menus Menu Bar Selection Models The JMenuBar Class The JMenuItem Class The JPopupMenu Class The JMenu Class Selectable Menu Items Toolbars 15. Tables The JTable Class Implementing a Column Model Table Data Selecting Table Entries Rendering Cells Editing Cells Next Steps 16. Advanced Table Examples A Table with Row Headers Large Tables with Paging A Table with Custom Editing and Rendering Charting Data with a TableModel 17. Trees A Simple Tree Tree Models The JTree Class Tree Nodes and Paths Tree Selections Tree Events Rendering and Editing What Next? 18. Undo The Swing Undo Facility The UndoManager Class Extending UndoManager 19. Text The Swing Text Components The JTextComponent Class The JTextField Class A Simple Form The JPasswordField Class The JTextArea Class How It All Works 20. Formatted Text Fields The JFormattedTextField Class Handling Numerics The DefaultFormatter Class The MaskFormatter Class The InternationalFormatter Class The DateFormatter Class The NumberFormatter Class The DefaultFormatterFactory Class Formatting with Regular Expressions The InputVerifier Class 21. Carets, Highlighters, and Keymaps Carets Highlighters Keymaps 22. Styled Text Panes The JTextPane Class AttributeSets and Styles The Document Model Document Events Views The DocumentFilter Class The NavigationFilter Class 23. Editor Panes and Editor Kits The JEditorPane Class Overview of the Editor Kits HTML and JEditorPane Hyperlink Events The HTMLEditorKit Class Extending HTMLEditorKit Editing HTML Writing HTML Reading HTML A Custom EditorKit 24. Drag and Drop What Is Drag and Drop? The Drop API The Drag Gesture API The Drag API Rearranging Trees Finishing Touches 25. Programming with Accessibility How Accessibility Works The Accessibility Package Other Accessible Objects Types of Accessibility Classes Added in SDK 1.3 and 1.4 The Accessibility Utility Classes Interfacing with Accessibility 26. Look and Feel Mac OS X and the Default Look-and-Feel How Does It Work? Key Look-and-Feel Classes and Interfaces The MultiLookAndFeel Auditory Cues Look-and-Feel Customization Creation of a Custom Look-and-Feel 27. Swing Utilities Utility Classes The Timer Class Tooltips Rendering Odds and Ends Event Utilities 28. Swing Under the Hood Working with Focus Multithreading Issues in Swing Lightweight Versus Heavyweight Components Painting and Repainting Creating Your Own Component A. Look-and-Feel Resources B. Component Actions Index