List of Tables


Chapter 1: An Approach to the Art of Programming

Three On A Beach
Figure 1-1: Isomorphic Mapping Between Problem Domain and Design Domain
Figure 1-2: Results of Running Example 1.2
Figure 1-3: javadoc Tool Being Used to Generate TestClass API Documentation
Figure 1-4: Example HTML Documentation Page Created With javadoc

Chapter 2: Small Victories: Creating Java Projects

Sun Chairs
Figure 2-1: Java Project Creation Process
Figure 2-2: Suns Java Download Page
Figure 2-3: Custom Setup Dialog
Figure 2-4: Window Showing Subfolders and Files in the j2sdk1.4.2_01 Folder
Figure 2-5: Contents Listing of C:\j2sdk1.4.2_01\bin
Figure 2-6: Setting the PATH Environment Variable in Microsoft Windows 2000/XP
Figure 2-7: Testing PATH Environment Variable by Typing javac
Figure 2-8: Setting Some Important Folder Options
Figure 2-9: SampleClass Project Source-Code Directory Structure
Figure 2-10: Final SampleClass Subdirectory Structure
Figure 2-11: Compiling the Java Source Files
Figure 2-12: SampleClass Sub-directory Structure After Compilation
Figure 2-13: The .class Files are Located in Their Proper Package Structure
Figure 2-14: Results of Running ApplicationClass Program
Figure 2-15: JBuilder with No Open Projects
Figure 2-16: New Project Menu
Figure 2-17: Project Wizard Step 1 of 3
Figure 2-18: Project Wizard Step 2 of 3
Figure 2-19: Project Wizard Step 3 of 3
Figure 2-20: Creating ApplicationClass.java Source File
Figure 2-21: TestProject After Creating SampleClass.java and ApplicationClass.java
Figure 2-22: Project Properties Dialog
Figure 2-23: Runtime Configuration Properties Dialog
Figure 2-24: JBuilder Project Menu Showing the Make Project Item
Figure 2-25: Running TestProject
Figure 2-26: Downloading a Linux Java Self-Extracting Bin File
Figure 2-27: Executing the Self-Extracting Bin File
Figure 2-28: New Subdirectory Resulting from SDK Extraction
Figure 2-29: Contents of the j2sdk1.4.2_02 Directory
Figure 2-30: Checking Environment Variables with the env Command
Figure 2-31: Using the tree Command to Show Directory Structure
Figure 2-32: Running ApplicationClass in the Linux Environment
Figure 2-33: Xcode New Project Assistant
Figure 2-34: New Java Tool Window
Figure 2-35: Xcode ApplicationClass Project Window
Figure 2-36: Editing the Manifest File to Reflect the Correct Package Location of the Main Application Class
Figure 2-37: Running ApplicationClass Project from Xcode IDE
Figure 2-38: Executing the MyApp.jar File Using the java Command

Chapter 3: Project Walkthrough: A Complete Example

Beach Trees
Figure 3-1: Tight Spiral Development Cycle Deployment
Figure 3-2: Robot Rat Viewed As Attributes
Figure 3-3: Robot Rat Floor Sketch
Figure 3-4: Complete Robot Rat Attributes
Figure 3-5: RobotRat UML Class Diagram
Figure 3-6: Compiling & Testing RobotRat Class - First Iteration
Figure 3-7: Compiling & Testing RobotRat.class - Second Iteration
Figure 3-8: Testing Menu Commands
Figure 3-9: pen_position State Transition Diagram
Figure 3-10: State Transition Diagram for the direction Variable
Figure 3-11: printFloor() Method Test
Figure 3-12: Testing the getSpaces() and move() Methods
Figure 3-13: Two Floor Patterns Printed To The Console
Figure 3-14: Partial RobotRat Javadoc Documentation

Chapter 4: Computers, Programs, & Algorithms

Chess Anyone?
Figure 4-1: Typical Power Mac G4 System
Figure 4-2: System Unit
Figure 4-3: Main Logic Board Block Diagram
Figure 4-4: PowerPC G4 Processor
Figure 4-5: Motorola PowerPC 7400 Block Diagram
Figure 4-6: Memory Hierarchy
Figure 4-7: Simplified Memory Subsystem Diagram
Figure 4-8: Simplified Main Memory Diagram
Figure 4-9: Processing Cycle
Figure 4-10: Dumb Sort Results 1
Figure 4-11: Dumb Sort Results 2
Figure 4-12: Dumb Sort Results 3
Figure 4-13: Algorithmic Growth Rates
Figure 4-14: Java HotSpot Virtual Machine Targets Specific Hardware Platforms
Figure 4-15: Java HotSpot Virtual Machine Architecture

Chapter 5: Overview Of The Java Platform API

Coralie In Shoppe
Figure 5-1: Java Platform Version 1.4.2 Package Architectural Overview
Figure 5-2: Java 2 Platform API Version 1.4.2 Specification Page
Figure 5-3: Partial Listing For java.lang Package
Figure 5-4: Detailed Information For java.lang.String class
Figure 5-5: String Inheritance Hierarchy UML Diagram
Figure 5-6: JButton Inheritance Hierarchy Information
Figure 5-7: JButton Inheritance Hierarchy
Figure 5-8: JButton Inherited Methods Grouped by Base Class (partial listing)
Figure 5-9: setVisible() Function Description

Chapter 6: Simple Java Programs: Using Primitive And Reference Data Types

Street Scene Jamaica
Figure 6-1: Compiling and Executing SimpleApplication
Figure 6-2: Results of Running IdentifierTest Program
Figure 6-3: TestClassOne Mod 1 Output
Figure 6-4: TestClassOne Mod 3 Output
Figure 6-5: TestClassOne Mod 4 Output
Figure 6-6: TestClassOne Mod 5 Output
Figure 6-7: Compiler Error Message Resulting From Attempt To Change A Constant’s Value
Figure 6-8: Results of Running TestClassOne with the Input 1 2 3
Figure 6-9: Running TestClassOne Again with Different Input Values
Figure 6-10: Results of Running Example 6.12
Figure 6-11: Creating an Object with the new Operator
Figure 6-12: Creating Another Object with the new Operator
Figure 6-13: Reusing the object_reference Variable
Figure 6-14: Results of Running Example 6.14
Figure 6-15: Results of running Example 6.15
Figure 6-16: Results of Running Example 6.16
Figure 6-17: Results of Running Example 6.17
Figure 6-18: Results of Running Example 6.18
Figure 6-19: Results of Running Example 6.19
Figure 6-20: Results of Running Example 6.20
Figure 6-21: Results of Running Example 6.21
Figure 6-22: Results of Running Example 6.22
Figure 6-23: Results of Running Example 6.23
Figure 6-24: Results of Running Example 6.24
Figure 6-25: Results of Running Example 6.25
Figure 6-26: Results of Running Example 6.26
Figure 6-27: Bitwise Operator Truth Tables
Figure 6-28: Results of Running Example 6.27
Figure 6-29: Results of Running Example 6.28

Chapter 7: Controlling The Flow Of Program Execution

Key Bridge
Figure 7-1: if Statement Execution Diagram
Figure 7-2: Results of Running Example 7.1
Figure 7-3: Results of Running Example 7.2
Figure 7-4: Results of Running Example 7.3
Figure 7-5: if/else Statement Execution Diagram
Figure 7-6: Results of Running Example 7.4
Figure 7-7: Results of Running Example 7.5
Figure 7-8: switch Statement Execution Diagram
Figure 7-9: Results of Running Example 7.6
Figure 7-10: Results of Running Example 7.7
Figure 7-11: Results of Running Example 7.8
Figure 7-12: while Statement Execution Diagram
Figure 7-13: Results of Running Example 7.9
Figure 7-14: do/while Statement Execution Diagram
Figure 7-15: Results of Running Example 7-10
Figure 7-16: for Statement Execution Diagram
Figure 7-17: Results of Running Example 7.11
Figure 7-18: Results of Running Example 7.12
Figure 7-19: Results of Running CheckBookBalancer
Figure 7-20: Results of Running Example 7.14
Figure 7-21: Results of Running Example 7.15
Figure 7-22: Results of Running Example 7.16
Figure 7-23: Results of Running Example 7.17 with Different Loop Limits

Chapter 8: Arrays

Times Square 2002
Figure 8-1: Array Elements are Contiguous and Homogeneous
Figure 8-2: Specifying Array Component Type
Figure 8-3: Array-Type Inheritance Hierarchy
Figure 8-4: Results of Running Example 8.1
Figure 8-5: Memory Representation of Primitive Type Array int_array Showing Default Initialization
Figure 8-6: Results of Running Example 8.2
Figure 8-7: Element Values of int_array After Initialization Performed by Second for Loop
Figure 8-8: Results of Running Example 8.3
Figure 8-9: Results of Running Example 8.4
Figure 8-10: Results of Running Example 8.5
Figure 8-11: State of Affairs After Line 3 of Example 8.5 Executes
Figure 8-12: State of Affairs After Line 5 of Example 8.5 Executes.
Figure 8-13: State of Affairs After Line 10 of Example 8.5 Executes
Figure 8-14: Final State of Affairs: All object_array Elements Point to an Object object
Figure 8-15: Results of Running Example 8.6
Figure 8-16: Results of Running Example 8.7
Figure 8-17: Results of Running Example 8.8
Figure 8-18: Array Declaration Syntax for a Two-Dimensional Array
Figure 8-19: A Two Dimensional Array with Dimensions 10 by 10
Figure 8-20: Results of Running Example 8.9
Figure 8-21: Memory Representation of int_2d_array with 2 Rows and 10 Columns
Figure 8-22: Results of Running Example 8.10
Figure 8-23: Results of Running Example 8.11
Figure 8-24: Results of Running Example 8.12
Figure 8-25: Results of Running Example 8.13
Figure 8-26: Results of Running Example 8.14

Chapter 9: Toward Problem Abstraction: Creating New Data Types

Palmater Arriving
Figure 9-1: People Management Program Project Specification
Figure 9-2: Class Diagram for People Manager Classes
Figure 9-3: Static and Non-Static Fields
Figure 9-4: Horizontal Access Controlled via Access Modifiers public and private
Figure 9-5: Method Definition Structure
Figure 9-6: Results of Running Example 9.5
Figure 9-7: Results of Running Example 9.7
Figure 9-8: Results of Running Example 9.9
Figure 9-9: Results of Running Example 9.11
Figure 9-10: Results of Running Example 9.16
Figure 9-11: Results of Running Example 9.18
Figure 9-12: Primitive and Reference Argument Values are Copied to Method Parameters
Figure 9-13: Results of Running Example 9.19
Figure 9-14: Linked List with Three Nodes

Chapter 10: Compositional Design

Street Pig
Figure 10-1: UML Diagram Showing Simple Aggregation
Figure 10-2: Part Class Shared Between Simple Aggregate Classes
Figure 10-3: UML Diagram Showing Composite Aggregation
Figure 10-4: Simple Aggregation Example
Figure 10-5: Results of Running Example 10.3
Figure 10-6: Composite Aggregation Example
Figure 10-7: Results of Running Example 10.6
Figure 10-8: Sequence Diagram — Simple Aggregation
Figure 10-9: Sequence Diagram — Composite Aggregation
Figure 10-10: Aircraft Engine Project Specification
Figure 10-12: Engine Class
Figure 10-11: Engine Simulation Class Diagram
Figure 10-13: Aircraft Engine Create Engine Object Sequence
Figure 10-14: Result of Running Example 10.8
Figure 10-15: Simple Aggregation Class Diagram
Figure 10-16: Composite Aggregation Class Diagram

Chapter 11: Extending Class Behavior Through Inheritance

Washington Canoe Club
Figure 11-1: Inheritance Hierarchy Illustrating Generalized & Specialized Behavior
Figure 11-2: UML Class Diagram Showing DerivedClass Inheriting From BaseClass
Figure 11-3: UML Diagram of BaseClass & DerivedClass Showing Fields and Methods
Figure 11-4: Results of Running Example 11.3
Figure 11-5: UML Diagram Showing Student Class Inheritance Hierarchy
Figure 11-6: Results of Running Example 11.6
Figure 11-7: Results of Running Example 11.7
Figure 11-8: UML Class Diagram For BaseClass & DerivedClass
Figure 11-9: Results of Running Example 11.3 with Modified Version of DerivedClass
Figure 11-10: Expressing an Abstract Class in the UML
Figure 11-11: UML Class Diagram Showing the AbstractClass & DerivedClass Inheritance Hierarchy
Figure 11-12: Results of Running Example 11.11
Figure 11-13: Two Types of UML Interface Diagrams
Figure 11-14: UML Diagram Showing the Simple Form of Realization
Figure 11-15: UML Diagram Showing the Expanded Form of Realization
Figure 11-16: UML Diagram Showing the MessagePrinterClass Realizing the MessagePrinter Interface
Figure 11-17: Results of Running Example 11.14
Figure 11-18: Horizontal And Vertical Access In Multi-Package Environment
Figure 11-19: Employee Class Inheritance Hierarchy
Figure 11-20: Results of Running Example 11.24
Figure 11-21: UML Class Diagram For Aircraft Engine Simulator
Figure 11-22: Results of Running Example 11.38

Chapter 12: Java Swing API Overview

Washington Canoe Club
Figure 12-1: Standard Algebraic Coordinate System
Figure 12-2: Standard Computer-Screen Coordinate System
Figure 12-3: Components and Bounds
Figure 12-4: Top-Level Container Hierarchy
Figure 12-5: Screen Shot of an Empty JWindow
Figure 12-6: Structure of a JWindow
Figure 12-7: Screenshot of an Empty JFrame
Figure 12-8: Structure of an Empty JFrame
Figure 12-9: JFrame with Menubar
Figure 12-10: Structure of JFrame with Menubar
Figure 12-11: A JDialog with a Label and Three Buttons
Figure 12-12: TestFrame GUI
Figure 12-13: TestFrameWithContents GUI
Figure 12-14: TestFrameWithContents Console Output
Figure 12-15: TestFrameWithContents Resized Larger
Figure 12-16: TestFrameWithContents Resized Smaller
Figure 12-17: TestFrameWithFlowLayout GUI
Figure 12-18: TestFrameWithFlowLayout Console Output
Figure 12-19: TestFrameWithFlowLayout Resized Wider
Figure 12-20: TestFrameWithFlowLayout Resized Taller
Figure 12-21: Coordinates for a Sample GridLayout with 4 Rows and 2 Columns
Figure 12-22: TestFrameWithGridLayout GUI
Figure 12-23: TestFrameWithGridLayout Console Output
Figure 12-24: TestFrameWithGridLayout Resized Wider
Figure 12-25: TestFrameWithGridLayout Resized Taller
Figure 12-26: BorderLayout Positions
Figure 12-27: TestFrameWithBorderLayout GUI
Figure 12-28: TestFrameWithBorderLayout Console Output
Figure 12-29: TestFrameWithBorderLayout Resized Wider
Figure 12-30: TestFrameWithBorderLayout Resized Taller
Figure 12-31: GridBagLayoutExample GUI
Figure 12-32: GridBagLayoutExample Console Output
Figure 12-33: GridBagLayoutExample GUI Variation 1
Figure 12-34: GridBagLayoutExample GUI Variation 2
Figure 12-35: GridBagLayoutExample GUI Variation 3
Figure 12-36: GridBagLayoutExample GUI Variation 4
Figure 12-37: GridBagLayoutExample GUI Variation 5
Figure 12-38: CombinedLayoutsExample GUI
Figure 12-39: CombinedLayoutExample Console Output
Figure 12-40: JComponent Inheritance Hierarchy
Figure 12-41: MainFrame GUI
Figure 12-42: Visual Guide to the Components in MainFrame
Figure 12-43: MainFrame Layout
Figure 12-44: Exercise3: Default Size
Figure 12-45: Exercise3: Stretched Horizontally
Figure 12-46: Alternate Border Layout

Chapter 13: Handling GUI Events

Garden Pond
Figure 13-1: EventObject Inheritance Hierarchy
Figure 13-2: ACME Product Services Confirmation
Figure 13-3: Event-Handling Division of Labor
Figure 13-4: Inheritance Hierarchy for the Examples Used in this Chapter
Figure 13-5: ActionEvent Inheritance Hierarchy
Figure 13-6: ActionListener Inheritance Hierarchy
Figure 13-7: MouseEvent Inheritance Hierarchy
Figure 13-8: MouseListener, MouseMotionListener, and MouseWheelListener Inheritance Hierarchy
Figure 13-9: KeyEvent Inheritance Hierarchy
Figure 13-10: KeyListener Inheritance Hierarchy
Figure 13-11: ChangeEvent Inheritance Hierarchy
Figure 13-12: ChangeListener Inheritance Hierarchy
Figure 13-13: ListSelectionEvent Inheritance Hierarchy
Figure 13-14: ListSelectionListener Inheritance Hierarchy

Chapter 14: An Advanced GUI Project

Blurry Subway
Figure 14-1: This Chapter’s Completed Application
Figure 14-2: Graphics Drawing Operations and Property-Related Methods
Figure 14-3: A JFrame Containing a JList with a Custom ListCellRenderer
Figure 14-4: A JFrame Containing a JTable
Figure 14-5: A JFrame Containing a Highly Customized JTree
Figure 14-6: Sequence Diagram for a JList Using CheckboxListCell – First Version
Figure 14-7: Maneuvering Through the Swing API
Figure 14-8: Sequence Diagram for a JList Using CheckboxListCell – Second Version
Figure 14-9: TreeCellEditor and TableCellEditor Inheritance Hierarchy
Figure 14-10: DefaultListModel Inheritance Hierarchy

Chapter 15: Exceptions

Reflections
Figure 15-1: Throwable Class Hierarchy
Figure 15-2: NumberFormatException Class Inheritance Hierarchy
Figure 15-3: Results of Running Example 15.1 with Good and Bad Input Strings
Figure 15-4: Results of Running Example 15.2
Figure 15-5: Results of Running Example 15.5
Figure 15-6: Results of Running Example 15.6
Figure 15-7: Results of Running Example 15.7
Figure 15-8: Results of Running Example 15.9
Figure 15-9: Results of Running Example 15.11

Chapter 16: Threads

Snow Runners
Figure 16-1: Results of Running Example 16.1
Figure 16-2: Results of Running Example 16.2
Figure 16-3: Results of Running Example 16.11
Figure 16-4: Results of Running Example 16.13
Figure 16-5: Breaker.java Thread Interaction
Figure 16-6: Acquiring and Releasing Locks
Figure 16-7: Breaker(2) and Breaker(3) Both Succeed
Figure 16-8: Breaker(2) Fails Because Not All Threads Synchronized
Figure 16-9: Breaker(3) Fails Because Not All Threads Synchronized
Figure 16-10: Results of Running Example 16.15
Figure 16-11: Breaker(2) Fails Because Threads Synchronized on Different Locks
Figure 16-12: Results of Running Example 16.16
Figure 16-13: Consumer Thread Waits
Figure 16-14: Producer Thread Waits
Figure 16-15: Deadlocked Threads
Figure 16-16: Results of Running Example 16.25(Output edited and annotated for brevity.)
Figure 16-17: Deadlock Due to Nested Synchronization

Chapter 17: Collections

Sideways Christmas Tree
Figure 17-1: Results of Testing DynamicArray
Figure 17-2: Results of Running Example 17.3
Figure 17-3: Results of Running Example 17.4
Figure 17-4: Java 1.4.2 Collections Framework Core Interface Hierarchy
Figure 17-5: Array of Object References Before Insertion
Figure 17-6: New Reference to be Inserted at Array Element 3 (index 2)
Figure 17-7: Array After New Reference Insertion
Figure 17-8: Linked List Node Organization
Figure 17-9: Linked List Before New Element Insertion
Figure 17-10: New Reference Being Inserted Into Second Element Position
Figure 17-11: References of Previous, New, and Next List Elements Must Be Manipulated
Figure 17-12: Linked List Insertion Complete
Figure 17-13: A Hash Function Transforms a Key Value into an Array Index
Figure 17-14: Hash Table Collisions are Resolved by Linking Nodes Together
Figure 17-15: Red-Black Tree Node Data Elements
Figure 17-16: Red-Black Tree After Inserting Integer Values 9, 3, 5, 6, 7, 8, 4, 1
Figure 17-17: Results of Running Example 17.5
Figure 17-18: Results of Running Example 17.8
Figure 17-19: Results of Running Example 17.9
Figure 17-20: Results of Running Example 17.12
Figure 17-21: Java 5 Collections Framework Core Interface Hierarchy
Figure 17-22: Results of Running Example 17.13
Figure 17-23: Results of Running Example 17.14

Chapter 18: File I/O

Rex Steele
Figure 18-1: Partial java.io Package Hierarchy
Figure 18-2: Results of Running Example 18.1
Figure 18-3: Results of Running Example 18.2
Figure 18-4: Results of Running Example 18.3
Figure 18-5: Contents of test.txt After Executing Example 18.3 Six Times
Figure 18-6: Results of Running Example 18.4
Figure 18-7: Contents of test.txt File After Executing Example 18.4
Figure 18-8: Results of Running Example 18.5
Figure 18-9: Contents of test.txt After Running Example 18.5
Figure 18-10: Results of Running Example 18.7
Figure 18-11: Contents of People.dat File Viewed with Text Editor
Figure 18-12: Contents of Output.txt File After Example 18.8 Executes
Figure 18-13: Results of Running Example 18.9
Figure 18-14: Results of Running Example 18.10.
Figure 18-15: Results of Running Example 18.11
Figure 18-16: Warning Produced When Compiling Example 18.12
Figure 18-17: Results of Running Example 18.12
Figure 18-18: Contents of test.txt File After Example 18.13 Executes
Figure 18-19: Contents of test.txt After Example 18.14 Executes
Figure 18-20: Contents of test.txt File After Example 18.15 Executes
Figure 18-21: Contents of test.txt File After Example 18.16 Executes
Figure 18-22: Results of Running Example 18.17
Figure 18-23: Results of Running Example 18.18
Figure 18-24: Results of Running Example 18.19
Figure 18-25: Initial Execution of PropertiesTesterApp (Example 18.21)
Figure 18-26: Contents of app_prop.xml After Example 18.21 Executes
Figure 18-27: Legacy Data File Adapter Project Specification
Figure 18-28: Contents of books.dat Example Legacy Datafile Viewed with Text Editor
Figure 18-29: Header and Record Length Analysis
Figure 18-30: Results of Running Example 18.29.

Chapter 19: Introduction To Networking And Distributed Applications

Rick
Figure 19-1: A Simple Computer Network
Figure 19-2: Local Area Network Connected to the Internet
Figure 19-3: The Internet — A Network of Networks Communicating via Internet Protocols
Figure 19-4: Client and Server Hardware and Applications
Figure 19-5: Client and Server Applications Physically Deployed to Same Computer
Figure 19-6: Client and Server Applications Require Separate Java Virtual Machines
Figure 19-7: Starting Multiple Terminal Windows Using start Command
Figure 19-8: Multiple JVMs Launched As Separate Processes In Mac OSX
Figure 19-9: Killing Unix Processes with the kill Command
Figure 19-10: Running Multiple Client JVMs On Same Hardware
Figure 19-11: Client and Server Applications Deployed On Different Computers
Figure 19-12: Physically Distributed Client and Server Applications Need A JVM
Figure 19-13: A Multi-tiered Application
Figure 19-14: Physically Deploying Logical Application Tiers on Same Computer
Figure 19-15: Logical Application Tiers Physically Deployed to Different Computers
Figure 19-16: TCP/IP Protocol Stack
Figure 19-17: Internet Protocol Stack Operations
Figure 19-18: Java Server Application Utilizing a ServerSocket Object
Figure 19-19: Incoming Client Connection
Figure 19-20: Connection Between Client & Server Established
Figure 19-21: Retrieve IOStream Objects from Server and Client Socket Objects
Figure 19-22: Results of Running Example 19.1
Figure 19-23: The Remote Method Invocation (RMI) Concept
Figure 19-24: Class Diagram for RemoteSystemMonitorInterface & RemoteSystemMonitorImplementation
Figure 19-25: SystemMonitorServer Running on Host Machine
Figure 19-26: Results of Running the SystemMonitorClient Application Connecting to the Locally Served Server Application
Figure 19-27: Results of the SystemMonitorClient Application after Running on a remote PC.
Figure 19-28: SystemMonitorClient Invoking the Remote Method on a PC Running the SystemMonitorServer Application

Chapter 20: Client-Server Applications

Rick
Figure 20-1: Client and Server Applications
Figure 20-2: Incoming Client Connection
Figure 20-3: The Connection is Established — There are Sockets at Both Ends of the Connection
Figure 20-4: The Socket Objects are Used to Retrieve the IOStream Objects
Figure 20-5: SimpleServer Running & Waiting for Incoming Client Connections
Figure 20-6: SimpleClient Console Output and GUI
Figure 20-7: SimpleServer Console After Detecting Incoming Client Connection
Figure 20-8: Several Messages Exchanged with the Server From SimpleClient
Figure 20-9: rat.gif
Figure 20-10: First Draft Class Diagram for the NetRatServer Application
Figure 20-11: NetRatServer Application Upon Start-up
Figure 20-12: NetRatServer Application After Approximately 10 move Button Clicks
Figure 20-13: RMI-Enabled NetRatServer Application at Start-up
Figure 20-14: RMI-Enabled NetRatServer Application After Approximately 10 move Button Clicks
Figure 20-15: RMI_NetRatClient Application
Figure 20-16: The Floor After Testing RMI_NetRatClient.
Figure 20-17: Updated Robot Rat Server Application Class Diagram
Figure 20-18: The Floor After Approximately 15 Clicks of the Server-Side move Button
Figure 20-19: Server Floor After RMI-Client-Controlled Robot Rat Moves South Several Clicks
Figure 20-20: Server Floor After Second RMI-Client-Controlled Robot Rat Appears
Figure 20-21: Final NetRatServer Application Design Class Diagram
Figure 20-22: Console Output on NetRatServer Application Startup
Figure 20-23: Empty Floor Displayed as a Result of Explicitly Loading the RobotRat Class

Chapter 21: Applets & JDBC

Rick
Figure 21-1: BasicApplet Inheritance Hierarchy
Figure 21-2: BasicApplet Running In Web Browser
Figure 21-3: Console Log Showing BasicApplet Life Cycle Messages
Figure 21-4: Console Log Showing BasicApplet Life Cycle Messages After Browser Shuts Down
Figure 21-5: Applet Life Cycle Stages
Figure 21-6: The <applet> Tag and its Attributes
Figure 21-7: An Applet Can Only Connect To The Server From Which It Was Served
Figure 21-8: AppletServer Applet Running In A Browser And Being Accessed By The SimpleClient Application
Figure 21-9: Results of Attempting to Connect to AppletServer from a Computer Other Than its Server
Figure 21-10: Results of Running ParameterApplet
Figure 21-11: Poetry Applet In Action
Figure 21-12: Employee Training Management System Architecture Diagram
Figure 21-13: Server-Side Component Class Diagram
Figure 21-14: Client-Side Component Class Diagram
Figure 21-15: MySQL Monitor Program on Startup
Figure 21-16: Results of Entering “show databases;” at the Monitor Prompt
Figure 21-17: Results of Changing to the mysql Database with “use mysql;” and Entering “show tables;”
Figure 21-18: Structure of the user Table Located in the mysql Database
Figure 21-19: Structure of the db Table
Figure 21-20: Contents of the db Table
Figure 21-21: Structure of the tables_priv Table
Figure 21-22: Structure of the columns_priv Table
Figure 21-23: Structure of the host Table
Figure 21-24: Entity Diagram for Employee and Employee_Training Tables
Figure 21-25: Newly Created chapter_21 Database Tables
Figure 21-26: Results of Executing the Select Statement Against the employees Table
Figure 21-27: Results of Selecting Only the First_Name and Last_Name Columns from the employees Table
Figure 21-28: Results of the Update Statement — Note the Middle_Name is Changed to ‘W’
Figure 21-29: Employees Table with Additional Data Added
Figure 21-30: Employee_Training Table Populated with Data
Figure 21-31: Results of Joining the employees Table with the employee_training Table
Figure 21-32: Results of Executing the Nested Select Statement Shown in Example 21.16
Figure 21-33: Results of Running Example 21.17
Figure 21-34: Results of Running Example 21.18 with employee Table Metadata Displayed
Figure 21-35: Employee Training Management System Architecture
Figure 21-36: Employee Training Management System Source Code Package Structure
Figure 21-37: Terminal Output Showing DBServerApp Startup Sequence
Figure 21-38: EmployeeTrainingApplet Appearance on First Access
Figure 21-39: Complete List of Employees
Figure 21-40: Training Records for Homer Simpson
Figure 21-41: Add New Employee Dialog
Figure 21-42: Add New Employee Dialog with Text Fields Filled In
Figure 21-43: New Employee Added to the Database

Chapter 22: Inheritance, Composition, Interfaces, Polymorphism

Crowded City Street
Figure 22-1: Meyer’s Inheritance Taxonomy
Figure 22-2: Person-Employee Inheritance Diagram
Figure 22-3: Revised Person - Employee Example
Figure 22-4: Results of Running Example 22.9

Chapter 23: Well-Behaved Objects

Two Children
Figure 23-1: Results of Running Example 23.4
Figure 23-2: Results of Running Example 23.6
Figure 23-3: Concept of a Shallow Copy
Figure 23-4: Concept of a Deep Copy
Figure 23-5: Results of Running Example 23.8
Figure 23-6: Results of Running Example 23.10
Figure 23-7: Results of Running Example 23.11
Figure 23-8: Results of Running Example 23.13

Chapter 24: Three Design Principles

Flowers
Figure 24-1: Results of Running Example 24.2
Figure 24-2: Results of Running Example 24.4
Figure 24-3: Results of Running Example 24.6
Figure 24-4: Results of Running Example 24.8
Figure 24-5: Strong vs. Weak Types
Figure 24-6: Results of Running Example 24.12
Figure 24-7: Naval Fleet Class Inheritance Hierarchy
Figure 24-8: Results of Running Example 24.22
Figure 24-9: Traditional Top-Down Functional Dependencies

Chapter 25: Helpful Design Patterns

Dried Shrub
Figure 25-1: Results of Running Example 25.8
Figure 25-2: Model-View-Controller Pattern
Figure 25-3: Results of Running Example 25.11 and Clicking the “Next Message” Button Several Times
Figure 25-4: Employee ManagementApplication UML Class Diagram
Figure 25-5: Interacting with the Employee Management Application




Java For Artists(c) The Art, Philosophy, and Science of Object-Oriented Programming
Java For Artists: The Art, Philosophy, And Science Of Object-Oriented Programming
ISBN: 1932504052
EAN: 2147483647
Year: 2007
Pages: 452

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net