Synopses & Reviews
As the Java programming language has increased in both functionality and complexity, developers have demanded more of their program editors. Gone are the days when a simple visual editor is sufficient for even small programming projects. While there are numerous IDEs available today for use by Java developers, one stands above the rest, not only for its functionality, but for its extensibility: NetBeans.In NetBeans: The Definitive Guide, you'll find out how to use this IDE to its fullest, making your Java programming more efficient and productive than ever before. You'll understand the basics of the IDE, and quickly be utilizing the various editor and explorer windows. You'll also master many of NetBeans advanced features, and be working with XML documents, CVS repositories, Javadoc trees, and web applications, all within the NetBeans framework.In addition to teaching you how to use the existing features of NetBeans, this work goes on to cover developing additional modules for NetBeans. Through this instructional portion of the book, you will master the NetBeans APIs, and learn how to enhance NetBeans for your own specific needs. Whether you need to add customized behavior to handle your proprietary file formats, or want to redistribute NetBeans as a proprietary product, NetBeans: The Definitive Guide will allow you to master this open source IDE and all of its advanced features. Whether you are an enterprise developer looking for an IDE that can handle your complex program tasks, an open source developer looking to integrate NetBeans into your own visual projects, or a manager trying to maximize your team's development potential,NetBeans: The Definitive Guide is the book for you.
This is the authoritative reference for understanding and using the NetBeans Integrated Development Environment for creating new software with Java. Contains a detailed tutorial.
This is an authoritative reference for understanding and using the NetBeans Integrated Development Environment for creating nw software with Java.
About the Author
is a native of Massachusetts who has worked in the IT industry as a developer, writer, graphic artist on and off since the age of twelve. Following a hiatus as a literary theory major and musician, he returned to the world of computers at the age of 23 in response to the marvelous career opportunities for a student of literature during a recession, and the clamour of the IT world for his return. In the spring of 1999, he moved to the Czech Republic to work for a small company called NetBeans, which was soon to be acquired by Sun Microsystems, where he still lives and works. Tim can be found at most times perched with an underpowered laptop, deep in ascetic concentration in his monastic quarters high in the towers of Sun Microsystems in Prague. He is occasionally led outside, blinking in the twilight, to belt out blues tunes in smoky bars, on the advice of his physicians and Sun Microsystems' "Great Place to Work" program.
has worked on NetBeans since January 1999 in several capacities, including developing NetBeans core software, editing API documentation, and providing assistance for integrators. He joined Sun with the acquisition of NetBeans in the fall of 1999. He has spoken twice at JavaOne on NetBeans module development.
currently lives with his wife Nikki in Philadelphia PA, but is originally from the sunny island republic of Trinidad and Tobago. In the pursuit of money, education and all else that corrupts, he left his island paradise and currently works as a developer for Hewlett-Packard. Although he misses tropical breezes and an idyllic lifestyle, he enjoys being a software developer and the opportunity to work with interesting technical people like those on the NetBeans project. Besides technology, Simeon also enjoys poetry, classical literature, travel and underground hip-hop - of course.
began his programming career in 1967 on the physically largest computer ever built, the SAGE system's house-sized AN/FSQ-7. A freelance consultant since 1975, he worked with a wide range of computer hardware and languages, including several early personal computers before they were known as such. Vaughn currently writes technical articles about Sun ONE Studio and develops training materials for Sun.
Table of Contents
Preface; Is NetBeans for You?; Is This Book for You?; NetBeans and Java; NetBeans as the "Visual JDK"; NetBeans as a Tools Platform; NetBeans as an Open Source Community; Contents of the Accompanying Sources; Licensing of the Code Examples in This Book; Writing Conventions in This Book; Comments and Questions; Acknowledgments; Chapter 1: Getting and Installing the IDE; 1.1 Platforms and Requirements; 1.2 Getting and Installing a JDK; 1.3 Which IDE Distribution?; 1.4 Installing Binary Distributions; 1.5 Building the IDE from Source (Simple Builds); 1.6 Running the IDE; 1.7 Updating the IDE Automatically; 1.8 You're Now Running NetBeans; Chapter 2: Concepts and Paradigms; 2.1 NetBeans and the Java Abstract Model of Computing; 2.2 Explorer; 2.3 Creating Packages and Classes; 2.4 Services; 2.5 Workspaces; 2.6 Project Management; 2.7 Object Browser; 2.8 Summary; Chapter 3: Working with the Source Editor; 3.1 Why Learn a New Editor?; 3.2 Opening the Source Editor; 3.3 Context Menus; 3.4 Closing the Source Editor; 3.5 Code Completion; 3.6 Editor Colorings; 3.7 Shortcuts; 3.8 Word Matching; 3.9 Indentation Engines and Code Formatting; 3.10 Automatic Edits; 3.11 Other Editor Functionality; 3.12 A Simple Example; Chapter 4: Debugging; 4.1 Debugger Types; 4.2 Breakpoint Types; 4.3 Adding and Removing Breakpoints; 4.4 Setting Watches; 4.5 Starting the Debugger; 4.6 The Debugger Window; 4.7 The Variables View; 4.8 Remote Debugging in NetBeans; Chapter 5: Compilation and Execution Services; 5.1 Using Custom Compilation and Execution Services; 5.2 Associating Services with Java Files; 5.3 Building with Ant; Chapter 6: Customizing the Environment; 6.1 The Setup Wizard; 6.2 The Tools→Options Dialog; 6.3 Configuring Toolbars; 6.4 Configuring Menus; 6.5 Configuring Editors; 6.6 Command Line Options; 6.7 Modules; Chapter 7: Using Source Control (CVS); 7.1 What Is CVS?; 7.2 The How, When, and Why of CVS in NetBeans; 7.3 Mounting CVS Sources; 7.4 Exploring Versioned Sources; 7.5 Common CVS Operations; 7.6 Unexpected Results; 7.7 Uncommon CVS Operations; 7.8 Mounting a Generic Versioning System; 7.9 One Final Tip; Chapter 8: GUI Building; 8.1 Creating a GUI Frame or Panel; 8.2 Adding Components to a GUI Container; 8.3 Configuring Components; 8.4 Building Menus; 8.5 Changing a Container's Layout; 8.6 Working with Borders; 8.7 Accessibility; 8.8 Copying a Source Object; 8.9 The Connection Wizard; 8.10 The GridBagLayout Customizer; 8.11 Adding Event Handlers; 8.12 Using the Code Generation Properties; 8.13 Working Around Code Generation; 8.14 Containers Within Containers; 8.15 Building Complex GUIs; Chapter 9: JavaBeans; 9.1 Why Should I Make Beans?; 9.2 Creating JavaBeans; 9.3 Component Palette; Chapter 10: Using Javadoc; 10.1 Javadoc Support in NetBeans; 10.2 Mounting Javadocs; 10.3 The Javadoc Search Tool; 10.4 Creating Javadoc; Chapter 11: Working with XML; 11.1 Installing XML Support; 11.2 Overview; 11.3 XML Editors; 11.4 Beyond Editing XML; 11.5 Generating Java Classes; Chapter 12: Developing Web Applications; 12.1 Why the IDE Supports Web Application Development; 12.2 How the IDE Provides Web Application Support; 12.3 Creating a Web Application; 12.4 Working with JSP and HTML Files; 12.5 Advanced Web Applications Features; 12.6 Packaging and Deploying Web Applications; Chapter 13: Extending NetBeans; 13.1 What's Different About NetBeans?; 13.2 The Core and the Open APIs; 13.3 NetBeans for Bean Counters; 13.4 Getting and Installing the Open APIs Support Module; 13.5 Life Is Change; 13.6 Source Code for the Examples; Chapter 14: Understanding the NetBeans APIs; 14.1 Design Philosophy of NetBeans; 14.2 User-Level Customization; 14.3 Modules--Overview; 14.4 Interacting with the IDE; Chapter 15: The Open APIs; 15.1 APIs versus Core versus Modules; 15.2 Service Provider Interfaces and Client APIs; 15.3 Overview of the APIs and Their Purposes; 15.4 Modules, JARs, and Class Loaders; 15.5 Threading, Deadlocks, andHow to Avoid Them; Chapter 16: Developing Modules--the New Module Wizard; 16.1 The HelloWorld Module; Chapter 17: Internals of the Running IDE; 17.1 The Activated Node(s); 17.2 Cookies; 17.3 A Peek under the Hood; 17.4 Touring NetBeans with the Bean Browser; 17.5 Data Objects, Nodes, and Cookies; 17.6 Filesystems and the Repository; 17.7 Services; 17.8 Lookup; 17.9 Options; 17.10 UI Components; 17.11 Localization; 17.12 Wizards; 17.13 Jumping-off Places; 17.14 Special Folders in the System Filesystem; Chapter 18: Creating the QuickPanel Module; 18.1 Abstractions Covered in This Chapter; 18.2 Creating the Project Files Drop-Down; 18.3 FilterNode--Filtering Which Children of a Node Are Displayed; 18.4 Creating the Methods Drop-Down; 18.5 Improving the Methods Drop-Down; 18.6 Creating the Module; 18.7 A Little Homework; Chapter 19: A Mail-Based Filesystem; 19.1 Building a Mail Reader in the NetBeans Paradigm; 19.2 Implementing MailFileSystem Using AbstractFileSystem and JavaMail; 19.3 Creating Folder Objects for Attachments; 19.4 Using FileSystem.Status Annotations to Mark Unread Messages; 19.5 BeanInfo--Displaying Filesystem Properties; 19.6 Using the Wizard Framework to Set Up Mail Accounts; Chapter 20: Creating the User Interfacefor the Mail Client; 20.1 Creating a DataLoader for Messages; 20.2 Creating a Threaded Mail View Using Filter Nodes; 20.3 Creating a Mail Workspace; Chapter 21: Score File Support; 21.1 Overview--Functionality to be Implemented; 21.2 Creating the Minicomposer Module; 21.3 Creating a UniFileLoader and MultiDataObject for *.score Files; 21.4 Creating an Editor Support for Scores; 21.5 Creating a Fixed ExecCookie to Play Scores; 21.6 Creating a Simple Template; Chapter 22: Creating a Structural View of the Score; 22.1 Creating a ScoreCookie to Represent a Sequence of Notes; 22.2 Creating a ScoreSupport; 22.3 Lifecycle of the Score; 22.4 An OpenSupport; 22.5 Indicating Parse Errors on the Node; Chapter 23: Compiling Scores; 23.1 Creating the Compilers; 23.2 Creating and Using the Compiler Cookie; 23.3 Displaying an Out-of-Date Badge on Score Icons; Chapter 24: Executing Scores; 24.1 Creating the .au Player Executor; 24.2 Creating Player Configuration Support; 24.3 Creating a SystemOption for the Default Executor; Chapter 25: Better Score Support in the Explorer; 25.1 The Clip Length Property; 25.2 Representing Notes as Subnodes Using Children.Keys; 25.3 Permitting Subnodes to Be Renamed or Deleted; 25.4 Permitting Subnodes to Be Added; 25.5 Making Read/Write Properties on Subnodes; 25.6 Reordering Subnodes; 25.7 Data Transfer--Cut, Copy, and Paste of Notes and Sequences; Chapter 26: Tuning Modules for Performance and Memory Footprint; 26.1 Startup Performance vs. Runtime Performance; 26.2 Operating Principles; 26.3 Techniques; Chapter 27: Producing Modules (Packaging and Distribution); 27.1 Versioning; 27.2 Upgrading User Settings; 27.3 Bundling Extension Libraries; 27.4 Internationalization and Accessibility; 27.5 JavaHelp--Writing and Distributing; 27.6 Supporting User-Level Java APIs; 27.7 Creating the Module JAR File Within the IDE; 27.8 Creating a Build Script Using Ant; 27.9 Producing the .nbm File; 27.10 Publishing Using the Update Center; 27.11 Using ErrorManager to Log Problems; 27.12 Testing; Chapter 28: Building Your Distribution of NetBeans; 28.1 Do You Need Your Own Distribution?; 28.2 Licensing; 28.3 Selecting a Baseline; 28.4 Getting the Sources; 28.5 Customizing the Build Process; 28.6 Adding Modules to a "Stock" Distribution; 28.7 Creating Preconfigured Settings; 28.8 Branding; A Tour of Existing Modules; Modules That Expose Functionality You Might Need; Incidental APIs, Utilities, and Extensions; Modules That Make Good Examples for Things You May Need to Implement; Useful Utility Classes; XML Utilities; Visual Components and Extensions to Standard Swing Components; Lookup Implementations; Threading; Miscellaneous Utility Classes inorg.openide.util; Serialization Helpers; Resources; CVSHome; Java Environments; Java Tools; Secure Shell (SSH) Resources; Cygwin for Windows; Newsgroups and Mailing Lists; Web Sites; NetBeans Open Source Projects with Design Forms in the Distribution; Java-Oriented IDEs Other Than NetBeans; Future Plans; Declarative Instantiation; Uniform Lookup; Datasystems II; The Looks API; Declarative Actions; Deprecation of IDE-Specific Functionality in the Open APIs; The Metadata Repository; Project Support; Working with Open Source and NetBeans; Practices; Resources; Interacting Effectively on Mailing Lists; Additional Modules and Where to Find Them; Open Source Modules Available Via the Update Center; The Modules Marketplace on Flashline; IDEs That Are Distributions of the NetBeans IDE; Open Source Application Projects Based on NetBeans; Commercial Applications Built on the NetBeans Platform; Commercial Modules Available for NetBeans; Should You Create Your Own Update Server?; Colophon;