NetBeans Platform for Beginners cover page
NetBeans Platform for Beginners

NetBeans Platform for Beginners

Modular Application Development for the Java Desktop


NetBeans Platform for Beginners Edit
This book is 100% Complete
  • $34.99

    Minimum

  • $49.99

    Suggested

Bundles

NetBeans Platform for Beginners
Exercises in Porting to the NetBeans Platform

NetBeans Platform Starter Kit

  • $79.99

    Regular Price

  • $50.00

    Suggested

2 Books

Learn more

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.

Read More

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

Read More

About the Authors

About the Contributors

Benno-74pic

Benno Markiewicz

Reviewer


Do not be fooled by "for Beginners" in the title! Indeed, this book provides the most comprehensive introduction to the basics, such as modularity, layer.xml, Lookup, actions, context-sensitive nodes, and window system... that I have ever read. BUT you will find many advanced topics in this book too. For example, there are detailed texts about using Modes, the Palette, Visual Library, Project API and so much more. You will even learn how to write your own annotation processors. In short, this is a reference I would not like to miss. -- Benno Markiewicz is an active member of the NetBeans community. As a NetBeans Platform Certified Committer he provides patches and plugins and tests NetBeans IDE in the NetCAT program.

Read More

32b6d5d

Donald A. Evett

Reviewer


I was very pleased to find the book full of examples and the examples were presented in an order that was easy to follow. Most books I’ve come across on this subject matter seemed to be difficult to follow as a beginner to the topic. I really feel this book will be a good tool in your library to help you understand and master the NetBeans Platform. If you're new to Java or even an experienced programmer, you’ll find the topics covered in this book will help you learn the nuances of Nodes, Lookups, and Actions and how to tie them into your applications. -- Donald A. Evett, Software Engineer, Department of Defense

Read More

Gj3

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.

Read More

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)

Read More

Picture-323255

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.

Read More

Nilshoffmann

Nils Hoffmann

Reviewer


I found the book to be a very comprehensive resource to really understand the NetBeans Platform and its APIs. It provides the necessary glue between the online tutorials, Wiki articles, and API documentation. The authors have structured the book so that its chapters can easily be used to teach courses for beginners on using the NetBeans Platform. Intermediate users of the NetBeans Platform may know about many of the aspects covered in the book, however, the authors share many background details and provide connections and insights that may still prove beneficial to intermediate or advanced users alike. The writing is clear and concise and the authors' tone invites feedback and contribution. This is also reflected by the updates and corrections that the book has received regularly since its first publication. -- Nils Hoffmann, 5 years experience developing user-friendy open source applications in the life science areas of metabolomics and proteomics.

Read More

13c0a72

Sean Phillips

Reviewer


The authors have done a fantastic job in covering the breadth of the NetBeans Platform and its capabilities. Having this text would have greatly accelerated my progression on the learning curve so many years ago. This book will be a good buy even for a NetBeans Platform developer with experience because the book does a nice job of explaining the why behind the what, as I learned in some situations the reasons behind certain NetBeans Platform development patterns I had taken for granted. -- Sean Phillips, Internal R&D Lead for NASA Mission Services Division at AI Solutions, with several years of NetBeans Platform experience in situational awareness and mission operations, and winner of a 2013 Duke's Choice Award.

Read More

The Leanpub Unconditional, No Risk, 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks. We process the refunds manually, so they may take a few days to show up.
See full terms