Preface 1. A Modern Language Enter Java A Virtual Machine; Java Compared with Other Languages Safety of Design Safety of Implementation Application and User-Level Security Java and the Web Java as a General Application Language A Java Road Map; 2. A First Application Java Tools and Environment HelloJava; HelloJava2: The Sequel HelloJava3: The Button Strikes! HelloJava4: Netscape's Revenge Troubleshooting 3. Tools of the Trade The Java VM Running Java Applications The Classpath; The Java Compiler JAR Files Policy Files 4. The Java Language Text Encoding Comments Types Statements and Expressions Exceptions Assertions Arrays 5. Objects in Java Classes Methods Object Creation Object Destruction Enumerations 6. Relationships Among Classes; Subclassing and Inheritance Interfaces Packages and Compilation Units Visibility of Variables and Methods Arrays and the Class Hierarchy Inner Classes 7. Working with Objects and Classes The Object Class The Class Class Reflection; Annotations 8. Generics Containers: Building a Better Mousetrap Enter Generics "There Is No Spoon" Parameterized Type Relationships Casts Writing Generic Classes Bounds; Wildcards Generic Methods Arrays of Parameterized Types; Case Study: The Enum Class Case Study: The sort( ) Method; Conclusion 9. Threads Introducing Threads Threading an Applet Synchronization Scheduling and Priority Thread Groups Thread Performance Concurrency Utilities Conclusion; 10. Working with Text Text-Related APIs Strings Internationalization Parsing and Formatting Text Printf-Style Formatting Formatting with the java.text Package Regular Expressions 11. Core Utilities Math Utilities Dates and Times Timers Collections Properties The Preferences API The Logging API Observers and Observables 12. Input/Output Facilities Streams Files Serialization; Data Compression The NIO Package 13. Network Programming; Sockets Datagram Sockets Simple Serialized Object Protocols; Remote Method Invocation Scalable I/O with NIO 14. Programming for the Web Uniform Resource Locators (URLs) The URL Class; Talking to Web Applications Web Services 15. Web Applications and Web Services Web Application Technologies Web Applications; WAR Files and Deployment Servlet Filters Building WAR Files with Ant Implementing Web Services 16. Swing Components; Containers Events Event Summary The AWT Robot! Multithreading in Swing 17. Using Swing Components Buttons and Labels Checkboxes and Radio Buttons Lists and Combo Boxes; The Spinner Borders Menus Pop-up Menus The JScrollPane Class The JSplitPane Class The JTabbedPane Class Scrollbars and Sliders Dialogs 18. More Swing Components; Text Components Focus Navigation Trees Tables Desktops; Pluggable Look-and-Feel Creating Custom Components 19. Layout Managers FlowLayout GridLayout BorderLayout BoxLayout; CardLayout GridBagLayout Nonstandard Layout Managers Absolute Positioning SpringLayout 20. Drawing with the 2D API; The Big Picture The Rendering Pipeline A Quick Tour of Java 2D; Filling Shapes Stroking Shape Outlines Using Fonts Displaying Images Drawing Techniques Printing 21. Working with Images and Other Media Loading Images Producing Image Data Filtering Image Data Saving Image Data Simple Audio; Java Media Framework 22. JavaBeans What's a Bean? The NetBeans IDE Properties and Customizers Event Hookups and Adapters Binding Properties Building Beans Limitations of Visual Design Serialization Versus Code Generation Customizing with BeanInfo Hand-Coding with Beans BeanContext and BeanContextServices The Java Activation Framework Enterprise JavaBeans 23. Applets The Politics of Applets The JApplet Class Using the Java Plug-in Java Web Start Using Digital Signatures Conclusion 24. XML A Bit of Background XML Basics SAX DOM XPath XInclude Validating Documents; JAXB and Code Generation Transforming Documents with XSL/XSLT; Web Services The End of the Book A. The Eclipse IDE; B. BeanShell: Simple Java Scripting Glossary; Index
Patrick Niemeyer became involved with Oak (Java's predecessor) while working at Southwestern Bell Technology Resources. He is an independent consultant and author in the areas of networking and distributed applications. Pat is the author of BeanShell, a popular Java scripting language, as well as various other free goodies on the Net. Most recently, Pat has been developing enterprise architecture for A.G. Edwards. He currently lives in the Central West End area of St. Louis with various creatures. Jonathan Knudsen is an author at O'Reilly & Associates. His books include The Unofficial Guide to Lego Mindstorms Robots, Java 2D Graphics, and Java Cryptography. He is the Courseware Writer for LearningPatterns.com.