Apache NetBeans Platform for Beginners
$34.99
Minimum price
$49.99
Suggested price

Apache NetBeans Platform for Beginners

Modular Application Development for the Java Desktop

About the Book

Whether a complete newbie to creating pluggable Java desktop software with the NetBeans Platform or interested in refreshing your knowledge and filling in the gaps, this is for you! The main themes of the book are modules, file systems, windows, nodes, and actions... and everything in between. Start your modular development process with the best set of texts and exercises available today.

For background on this book, read this interview with the authors, published on jaxenter.com.

About the Authors

Jason Wexbridge
Jason Wexbridge

Jason Wexbridge is an expert in Java software development, leading a team of engineers in a distributed development environment. He's found modularity to be the key factor in successfully setting up agile development teams and he initiated "NetBeans Platform for Beginners" to share the wealth of his experience. A technical writer by trade, his focus is always to ensure a strong mixture between theoretical and practical knowledge transfer. He's based in Orlando, Florida.

Walter Nyland
Walter Nyland

Walter Nyland has years of experience in the software industry. After development work with C and C++, he moved to Java and gradually moved all his software development activities on the NetBeans Platform. He has been responsible for a variety of corporate software development projects, particularly in unmanned vehicle control software, using the NetBeans Platform as the basis of a suite of development products. Delving into technical writing for the first time, Walter has provided a lot of the technical insights into the inner workings of the NetBeans Platform to the book. He's based in Boise, Idaho.

Bundles that include this book

$79.99
Bought separately
$50.00
Bundle Price

About the Contributors

Geertjan Wielenga
Geertjan Wielenga

Reviewer

As a NetBeans Platform developer, you cannot afford to not buy this book. It provides everything you need on all the core topics. All the chapters begin with a thorough overview of a topic, e.g., Modules or Lookups or Nodes, and then there are many small exercises, with all the code on GitHub. Extremely useful and an absolute "must have" for anyone doing modular development on the desktop in Java. -- Geertjan Wielenga works for Oracle as a product manager for NetBeans.
Jaroslav Tulach
Jaroslav Tulach

Reviewer

Each chapter is focused on a particular use case, starting with a description of the problem it helps to solve. Only then does the book show the actual Java code, in the context of a cute car-related sample. The high-level concepts and their usefulness are described first, with their actual usages later. And some of the gory API details, such as the WizardDescriptor class, are left for the last chapter. I love this approach. I believe that NetBeans Platform for Beginners should replace our standard NetBeans documentation. -- Jaroslav Tulach, NetBeans founder, initial NetBeans API architect, and author of "Practical API Design: Confessions of a Java Framework Architect" (Apress, 2012)
Michael W. Bishop
Michael W. Bishop

Reviewer

"NetBeans Platform For Beginners" contains the information needed to get developers building NetBeans Platform applications quickly. With concise explanations and detailed examples of a wide palette of APIs, both beginners and veterans of the platform will find elegant solutions to integrating practical features. From concept to fully qualified implementation, the user is treated to a thorough lesson on each API covered. "NetBeans Platform For Beginners" belongs in the virtual library of every developer creating NetBeans Platform applications. -- Michael W. Bishop has been professionally developing Java applications for 15 years. He has been actively participating in the NetBeans community since he started developing NetBeans Platform applications 5 years ago.

Table of Contents

    • Introduction
    • Foreword
    • Preface
    • Updates
      • Update 1: March 26, 2014
      • Update 2: April 30, 2014
      • Update 3: May 30, 2014
      • Update 4: June 26, 2014
      • Update 5: July 29, 2014
      • Update 6: August 30, 2014
    • Guide
    • Application
    • Get Started
  • Part 1: Core
    • Chapter 1: NetBeans Platform
      • 1.1 Concepts
        • 1.1.1 Modularity
        • 1.1.2 Abstraction
        • 1.1.3 Lifecycle Management
        • 1.1.4 Pluggability, Service Infrastructure, and File System
        • 1.1.5 Data-Oriented GUI Components
        • 1.1.6 Standards
        • 1.1.7 Tools, APIs, and Community
      • 1.2 Get Started
        • 1.2.1 Creation
        • 1.2.2 Deployment
        • 1.2.3 Commands
        • 1.2.4 Properties
        • 1.2.5 Features
          • 1.2.5.1 Plugin Manager
          • 1.2.5.2 Favorites Window
          • 1.2.5.3 User Utilities
          • 1.2.5.4 Image Editor
          • 1.2.5.5 XML Editor
          • 1.2.5.6 IDE Defaults
          • 1.2.5.7 Apple Application Menu
        • 1.2.6 Branding
        • 1.2.7 Configuration File
        • 1.2.8 Distribution
    • Chapter 2: Module System
      • 2.1 Concepts
        • 2.1.1 Definition
        • 2.1.2 Benefits
          • 2.1.2.1 Developers
          • 2.1.2.2 Users
          • 2.1.2.3 Revenues
        • 2.1.3 Characteristics
          • 2.1.3.1 Deployment Format
          • 2.1.3.2 Uniqueness
          • 2.1.3.3 Versioning
          • 2.1.3.4 Exposed Interfaces
          • 2.1.3.5 Declarative Dependencies
          • 2.1.3.6 Activation Type
          • 2.1.3.7 Lifecycle
        • 2.1.4 Manifest
          • 2.1.4.1 General
          • 2.1.4.2 Dependencies
          • 2.1.4.3 Services
          • 2.1.4.4 Visibility
        • 2.1.5 Modularity
      • 2.2 Get Started
        • 2.2.1 Creation
        • 2.2.2 Commands
        • 2.2.3 Properties
        • 2.2.4 Templates
        • 2.2.5 Dependencies
        • 2.2.6 Versioning
        • 2.2.7 Lifecycle
        • 2.2.8 Distribution
          • 2.2.8.1 Pull
          • 2.2.8.2 Push
    • Chapter 3: File System
      • 3.1 Concepts
        • 3.1.1 Creating and Working with Arbitrary Objects
        • 3.1.2 Presentation of Arbitrary Objects
        • 3.1.3 Hierarchical Namespaces
        • 3.1.4 Merging Multiple Namespaces
        • 3.1.5 System FileSystem
          • 3.1.5.1 Listening to Changes in the System FileSystem
          • 3.1.5.2 Module Layers
          • 3.1.5.3 Read/Write
        • 3.1.6 FileObject
        • 3.1.7 Object
        • 3.1.8 Factories
        • 3.1.9 Access
          • 3.1.9.1 Root
          • 3.1.9.2 Folder
          • 3.1.9.3 Object
          • 3.1.9.4 Attribute
        • 3.1.10 DataObject
      • 3.2 Get Started
        • 3.2.1 Basic
          • 3.2.1.1 Application
          • 3.2.1.2 Provider
          • 3.2.1.3 Consumer
        • 3.2.2 Advanced
          • 3.2.2.1 Provider
          • 3.2.2.2 Consumer
    • Chapter 4: Lookup
      • 4.1 Concepts
        • 4.1.1 Service Registry: Lookup.getDefault()
          • 4.1.1.1 ServiceLoader
          • 4.1.1.2 Lookup
          • 4.1.1.3 @ServiceProvider
          • 4.1.1.4 Services Folder
          • 4.1.1.5 Requiring and Providing Services
        • 4.1.2 Global Lookup: Utilities.actionsGlobalContext()
          • 4.1.2.1 Context Global Provider
        • 4.1.3 Local Lookup: Object.getLookup()
        • 4.1.4 Merged Lookup: ProxyLookup
        • 4.1.5 Dynamic Lookup
        • 4.1.6 Central Lookup: CentralLookup.getDefault()
      • 4.2 Get Started
        • 4.2.1 Service Registry
          • 4.2.1.1 Application
          • 4.2.1.2 API
          • 4.2.1.3 Implementation
          • 4.2.1.4 Usage
        • 4.2.2 Global Lookup
        • 4.2.3 Local Lookup
  • Part 2: GUI
    • Chapter 5: Action System
      • 5.1 Concepts
        • 5.1.1 Basics
          • 5.1.1.1 Registration
          • 5.1.1.2 Presenters
            • 5.1.1.2.1 Menu
            • 5.1.1.2.2 Toolbar
            • 5.1.1.2.3 Custom Presenter
            • 5.1.1.2.4 Keyboard Shortcut
            • 5.1.1.2.5 Mnemonic
          • 5.1.1.3 Hiding
          • 5.1.1.4 Reordering
          • 5.1.1.5 Enablement
        • 5.1.2 Advanced
          • 5.1.2.1 Complex Enablement
          • 5.1.2.2 Callback Actions
            • 5.1.2.2.1 Using Existing Keys
            • 5.1.2.2.2 Creating Custom Keys
          • 5.1.2.3 Toolbar Configuration
      • 5.2 Get Started
        • 5.2.1 Application
        • 5.2.2 Wizard
        • 5.2.3 No Wizard
        • 5.2.4 Enablement
        • 5.2.5 Porting
    • Chapter 6: Window System
      • 6.1 Concepts
        • 6.1.1 Benefits
          • 6.1.1.1 Plumbing
          • 6.1.1.2 Multiple Windows
          • 6.1.1.3 Logical Window Management
          • 6.1.1.4 Window State
          • 6.1.1.5 Selection Management
            • 6.1.1.5.1 Lookup
            • 6.1.1.5.2 Activated Nodes
          • 6.1.1.6 API vs. Implementation
        • 6.1.2 Basics
          • 6.1.2.1 Description
          • 6.1.2.2 Registration
          • 6.1.2.3 Open Action
          • 6.1.2.4 Lifecycle
          • 6.1.2.5 Non-Declarative TopComponents
          • 6.1.2.6 Dock
          • 6.1.2.7 Undo
          • 6.1.2.8 Lookup
            • 6.1.2.8.1 Save Action
            • 6.1.2.8.2 Save All Action
            • 6.1.2.8.3 Zoom Action
            • 6.1.2.8.4 Miscellaneous
        • 6.1.3 Advanced
          • 6.1.3.1 Persistence
          • 6.1.3.2 Mode
          • 6.1.3.3 Group
          • 6.1.3.4 Role
          • 6.1.3.5 Validation
          • 6.1.3.6 Tab
          • 6.1.3.7 Busy
      • 6.2 Get Started
        • 6.2.1 Application
        • 6.2.2 Wizard
        • 6.2.3 No Wizard
        • 6.2.4 Functionality
        • 6.2.5 Porting
    • Chapter 7: Nodes and Explorers
      • 7.1 Concepts
        • 7.1.1 Node
          • 7.1.1.1 BeanNode
          • 7.1.1.2 DataNode
          • 7.1.1.3 FilterNode
          • 7.1.1.4 AbstractNode
        • 7.1.2 Children
          • 7.1.2.1 Simple
          • 7.1.2.2 Complex
        • 7.1.3 GUI Components
          • 7.1.3.1 View
          • 7.1.3.2 Manage
          • 7.1.3.3 Synchronize
          • 7.1.3.4 Outline
          • 7.1.3.5 Extend
          • 7.1.3.6 Utilities
        • 7.1.4 Selection
        • 7.1.5 Lookup
          • 7.1.5.1 View
          • 7.1.5.2 Node
          • 7.1.5.3 Children
        • 7.1.6 Actions
          • 7.1.6.1 New
            • 7.1.6.1.1 XML
            • 7.1.6.1.2 JPA
          • 7.1.6.2 Delete
          • 7.1.6.3 Rename
          • 7.1.6.4 Open
            • 7.1.6.4.1 Standard
            • 7.1.6.4.2 MultiView
          • 7.1.6.5 Reorder
          • 7.1.6.6 Drag and Drop
            • 7.1.6.6.1 Dragging
            • 7.1.6.6.2 Dropping
          • 7.1.6.7 Annotations
        • 7.1.7 Properties
      • 7.2 Get Started
        • 7.2.1 Object
          • 7.2.1.1 Application
          • 7.2.1.2 Object
          • 7.2.1.3 Node
          • 7.2.1.4 Factory
          • 7.2.1.5 View
          • 7.2.1.6 Synchronize
          • 7.2.1.7 Hierarchy
        • 7.2.2 File
          • 7.2.2.1 Application
          • 7.2.2.1 View
          • 7.2.2.3 File Type
          • 7.2.2.4 Node
        • 7.2.3 Functionality
        • 7.2.4 Porting
  • Part 3: Extras
    • Chapter 8: Palettes and Widgets
      • 8.1 Concepts
        • 8.1.1 Palette
          • 8.1.1.1 Basics
          • 8.1.1.2 Providing
            • 8.1.1.2.1 System FileSystem
            • 8.1.1.2.2 Node Hierarchy
          • 8.1.1.3 Consuming
            • 8.1.1.3.1 Java Swing
            • 8.1.1.3.2 Scene
            • 8.1.1.3.3 Lookup
          • 8.1.1.4 Configuring
            • 8.1.1.4.1 Action
            • 8.1.1.4.2 Filter
            • 8.1.1.4.3 Drag And Drop Handler
            • 8.1.1.4.4 Listener
            • 8.1.1.4.5 Attribute
            • 8.1.1.4.6 Manager
        • 8.1.2 Visual Library
          • 8.1.2.1 Widget
          • 8.1.2.2 Action
            • 8.1.2.2.1 Factories
            • 8.1.2.2.2 Providers
            • 8.1.2.2.3 Groupings
            • 8.1.2.2.4 Types
          • 8.1.2.3 Border
          • 8.1.2.4 Layout
          • 8.1.2.5 Scene
            • 8.1.2.5.1 ObjectScene
            • 8.1.2.5.2 GraphScene
            • 8.1.2.5.3 GraphPinScene
            • 8.1.2.5.4 VMDGraphScene
          • 8.1.2.6 Lookup
      • 8.2 Get Started
        • 8.2.1 Application
        • 8.2.2 Model
        • 8.2.3 Palette
          • 8.2.3.1 Content
          • 8.2.3.2 Controller
          • 8.2.3.3 View
        • 8.2.4 Visual Library
          • 8.2.4.1 Scene
          • 8.2.4.2 Accept
          • 8.2.4.3 Connect
          • 8.2.4.4 Resize
          • 8.2.4.5 Delete
          • 8.2.4.6 Export
            • 8.2.4.6.1 Image
            • 8.2.4.6.2 XML
    • Chapter 9: Project System
      • 9.1 Concepts
        • 9.1.1 Benefits
          • 9.1.1.1 Projects Window
          • 9.1.1.2 New Project Dialog
        • 9.1.2 Basic and Advanced Classes
      • 9.2 Get Started
        • 9.2.1 From Scratch
          • 9.2.1.1 Basics
            • 9.2.1.1.1 Application
            • 9.2.1.1.2 Factory
            • 9.2.1.1.3 Project
            • 9.2.1.1.4 Description
          • 9.2.1.2 Advanced
            • 9.2.1.2.1 View
            • 9.2.1.2.2 Children
            • 9.2.1.2.3 Customizer
            • 9.2.1.2.4 Subproject
            • 9.2.1.2.5 Template
            • 9.2.1.2.6 Branding
        • 9.2.2 By Extension
          • 9.2.2.1 Lookup
            • 9.2.2.1.1 Privileged Templates
            • 9.2.2.1.2 Recommended Templates
            • 9.2.2.1.3 Subproject
          • 9.2.2.2 View
          • 9.2.2.3 Customizer
          • 9.2.2.4 Icon
    • Chapter 10: Miscellaneous
      • 10.1 Dialog
        • 10.1.1 Predefined Dialogs
          • 10.1.1.1 Information Dialog
          • 10.1.1.2 Question Dialog
          • 10.1.1.3 Input Dialog
          • 10.1.1.4 Error Dialog
        • 10.1.2 Custom Dialogs
      • 10.2 Execution
        • 10.2.1 Executing an External Process
        • 10.2.2 Processing Input
        • 10.2.3 Printing Input
        • 10.2.4 Custom Process Builder
        • 10.2.5 Destroying a Process
        • 10.2.6 Extending Startup Environment
        • 10.2.7 Making Certain Open Actions Pluggable
      • 10.3 Output
      • 10.4 Preference
      • 10.5 Progress
      • 10.6 Quick Search
      • 10.7 Status
      • 10.8 Task
        • 10.8.1 Delayed
        • 10.8.2 Periodic
        • 10.8.3 Coalescing
        • 10.8.4 Interrupted
      • 10.9 Utilities
        • 10.9.1 ChangeSupport
        • 10.9.2 Conversions
        • 10.9.3 FileChooserBuilder
        • 10.9.4 ImageUtilities
        • 10.9.5 NbBundle.Messages
        • 10.9.6 Notifications
        • 10.9.7 StaticResource
        • 10.9.8 WeakListener
        • 10.9.9 XMLUtil
      • 10.10 Wizard
        • 10.10.1 Key Classes
        • 10.10.2 Get Started
        • 10.10.3 Registration
        • 10.10.4 Iterators
        • 10.10.5 Panels
        • 10.10.6 Customization
  • Conclusion

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub