Desktop Applications
  • Introduction: About the Course, Plus Some Useful Resources
  • Creating a Basic Swing Application
  • Adding Components: Layouts, Buttons and Text Areas
  • Responding to Button Clicks
  • Custom Components
  • Simple Toolbars
  • Communication Between Components
  • Listeners and Events: Using Interfaces to Cleanly Separate Components
  • Setting Component Sizes
  • Setting Borders
  • Text Fields and Labels
  • Laying Out Controls with GridBagLayout
  • Custom Events and Form Submission
  • List Boxes
  • Working With List Box Data
  • Combo Boxes
  • Checkboxes
  • Radio Buttons
  • Menus
  • Using Checkboxes in Menus
  • Mnemonics and Accelerators
  • Message Boxes
  • Open/Save File Dialogs
  • Filtering File Choosers
  • Model-View-Controller: Creating a Data Model
  • Model-View-Controller: Creating a Controller
  • Creating Tables
  • Serialization: Saving Objects to Files
  • Popup Menus
  • Selecting Rows in Tables
  • Deleting Rows in Tables
  • Dialogs
  • Spinners: Specialised Controls for Entering Numbers
  • Password Fields
  • Saving Program Data: Preferences
  • Arranging and Designing Dialogs and Forms
  • JDBC: Connecting to a SQL Database
  • JDBC: Retrieving Values from Databases
  • JDBC: Saving to a Database
  • JDBC: Updating Databases
  • JDBC: Loading Data from Databases
  • Wiring in the Database Code: Bringing It All Together
  • Intercepting the Window Closing Event
  • Using Images and Icons
  • Draggable Toolbars: Using the JToolbar class
  • Split Panes: Creating Resizeable Separate Areas
  • Tabs: Using Tabbed Panes
  • Tree Views Using JTree
  • Tree Selection Events
  • Associating Data With Tree Nodes
  • Tree Node Icons
  • Custom Tree Cell Renderers: Using Checkboxes in Trees
  • Custom Tree Cell Editors: Editing Tree Nodes Using Checkboxes
  • Detecting Tree Node Editor Changes
  • A Simulated Message Server
  • Multithreading in Swing: The SwingWorker class
  • Modal Dialogs
  • Progress Bars
  • Distributing Your Application: Runnable Jars
  • Adding Text to Progress Bars
  • Cancelling SwingWorker Threads
  • Setting the Cursor
  • Multiple Nested Split Panes
  • Responding to Tab Selections
  • Custom List Renderers
  • Responding to List Selections
  • Changing the Font Using Logical Fonts
  • Loading Font Files
  • Configuring the Database Connection
  • Editable Tables
  • Using Checkboxes in Table Cells
  • Custom Table Cell Renderers
  • Using Custom Editors in Table Cells
Applets and Animation
  • About Applets and the Following Section
  • Applets: Creating a Simple Swing Program that Runs in a Webpage
  • Drawing Custom Components
  • Drawing Shapes: Exploring the Graphics API
  • Deploying Applets
  • Timers: Using the Swing Timer Class
  • Basic Animation
  • Smoothing Your Animations With Double Buffering
  • Mouse Listeners
  • Hiding the Cursor
  • Key Listeners
  • Detecting Component Resizing
  • Using Visual Designers: The Free Window Builder Pro Plugin
  • CardLayout: Switching Between Completely Different Views
  • Detecting Collisions Between Shapes
  • Turning an Applet into a Desktop App
Appendix
  • Setting the Look and Feel
  • Source Code - Complete Projects
  • Projects -- The Source Code Projects You See in the Tutorials
  • "Swing Test" Database