| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = NetBeans Platform Learning Trail |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: NetBeans Platform Learning Trail - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, NetBeans Platform Learning Trail |
| :reviewed: 2022-01-14 |
| |
| |
| == What is the NetBeans Platform? |
| |
| The NetBeans Platform is a broad Java framework on which you can base large desktop applications. |
| |
| See link:https://en.wikipedia.org/wiki/List_of_NetBeans-based_software[a list of NetBeans based applications] |
| that have been built on top of the NetBeans platform. |
| |
| NOTE: The fact that we use the NetBeans Platform to build the NetBeans IDE does not mean that |
| you can only build IDEs with it. People design planes, manage airports and harbors, manage satellite |
| earth stations, build passenger information systems, design radar systems, play music, paint complex |
| graphs and more using the NetBeans Platform. |
| |
| The NetBeans Platform contains APIs that simplify the handling of windows, |
| actions, files, user selection and many other things typical in desktop based |
| applications. This greatly makes things easier for you, reducing the |
| time-to-market required to create great applications. |
| |
| Of course great power comes with great responsiblity, so you have to learn |
| how to use the NetBeans Platform before taking advantage of its full potential. |
| This page may be of help. |
| |
| == Reference |
| |
| This section contains links to books, refcards, blogs and videos that you |
| may consider useful while learning the NetBeans Platform. |
| |
| === Books |
| |
| This is a list of books that may help you get started. Some of them are |
| somewhat old, but NetBeans main concepts have not evolved that much, and most |
| of them are still up to date. |
| |
| * link:https://leanpub.com/nbp4beginners[+"Apache NetBeans Platform for Beginners"+] |
| * link:http://www.apress.com/9781430241010[+"The Definitive Guide to NetBeans Platform 7"+] |
| * link:https://www.packtpub.com/netbeans-platform-6-9-developers-guide/book[+"NetBeans Platform 6.9 Developer's Guide"+] |
| * link:http://www.apress.com/9781430224174[+"The Definitive Guide to NetBeans Platform 6.5"+] |
| * link:http://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/0132354802[+"Rich Client Programming: Plugging into the NetBeans Platform"+] |
| |
| === Reference cards |
| |
| The dzone link:https://dzone.com/refcardz/netbeans-platform-70[Essential NetBeans Platform Refcard] may be of interest to you. |
| |
| === Wiki |
| |
| Our wiki's link:https://netbeans.apache.org/wiki/DevFaqIndex.asciidoc[+NetBeans Developer FAQ+] has interesting "tricks" you may want to take a look at. |
| link:https://netbeans.apache.org/wiki/NbmIdioms.asciidoc[NetBeans APIs idioms] is also useful to know the answers to many frequent questions. |
| |
| === Blogs |
| Some blogs you may find of interest: |
| |
| * The link:https://blogs.apache.org/netbeans/[Apache NetBeans blog]. |
| * link:http://wiki.apidesign.org/wiki/Main_Page[wiki.apidesign.org] by Jaroslav Turach, NetBeans main architect. |
| * link:http://blogs.oracle.com/geertjan[+Geertjan Wielenga+] (archived) |
| * link:http://blogs.kiyut.com/tonny/[+Tonny Kohar+]. |
| |
| === Videos |
| |
| We have a link:https://www.youtube.com/user/NetBeansVideos[YouTube channel] with many videos |
| you may want to check. |
| |
| === Screencasts |
| |
| * link:http://prezi.com/b5ntwnpvu9j8/free-netbeans-platform-crash-course/[+Slides: Free NetBeans Platform Crash Course+] |
| * link:https://netbeans.apache.org/tutorials/nbm-10-top-apis.html[+Video: Top 10 NetBeans APIs+] |
| |
| === Community-Contributed Docs |
| |
| The community has also contributed documentation along the years. Let us know if you want yours included here! |
| |
| * link:http://wiki.apidesign.org/wiki/Main_Page[wiki.apidesign.org] by Jaroslav Turach, NetBeans main architect. |
| * link:http://tdamir.blogspot.com/2007/12/ddl-visualizer-visualize-sql-script.html[+DDL Visualizer: Visualize SQL Script with NetBeans+], by Damir Tesanovic |
| * link:http://blogs.kiyut.com/tonny/2007/10/18/customize-netbeans-platform-splash-screen-and-about-dialog/[+Customize the Splash Screen and About Dialog+], by Tonny Kohar |
| * link:https://dzone.com/articles/quickstart-guide-language-supp[+Quick Start: Creating Language Tools In NetBeans IDE+], by Jordi R. Cardona |
| * link:https://vieiro.net/apuntes/swingnbrcp/[The NetBeans Platform on Standalone Swing Applications], by Antonio Vieiro, explains how to use some NetBeans APIs in a plain Swing application. |
| |
| === API documentation |
| |
| <<API,We've moved the API list to the end of this page>>. |
| |
| == NetBeans Platform Tutorials |
| |
| |
| === Contributing |
| |
| We have ported the NetBeans Tutorials to this site, but some of the tutorials need a review. |
| |
| You can help us improve the tutorials following link:https://netbeans.apache.org/kb/docs/contributing.html[these contribution guidelines]. |
| |
| * For historical reasons, the link:https://netbeans.apache.org/kb/docs/platform/[NetBeans Platform Learning Trail] has also a list of tutorials you may want to check. |
| |
| === Introductory tutorials |
| |
| * The link:https://netbeans.apache.org/tutorials/nbm-runtime-container.html[+Runtime Container Tutorial+] explains how NetBeans works internally. |
| * link:https://netbeans.apache.org/tutorials/nbm-10-top-apis.html[+Top 10 NetBeans APIs (Videos)+] explains the "top 10" NetBeans APIs. |
| |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-google.html[+NetBeans Plugin Quick Start+] |
| * link:https://netbeans.apache.org/tutorials/nbm-quick-start.html[+NetBeans Platform Quick Start+] |
| * link:https://netbeans.apache.org/tutorials/nbm-dukescript.html[+NetBeans Platform Plugins with DukeScript+] |
| * link:https://netbeans.apache.org/tutorials/nbm-porting-basic.html[+Porting Swing Components+] |
| * link:https://netbeans.apache.org/tutorials/nbm-javafx.html[+Porting JavaFX Components+] |
| * link:https://netbeans.apache.org/tutorials/nbm-selection-1.html[+Part 1: Selection Management Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-selection-2.html[+Part 2: Selection Management Tutorial IIāUsing Nodes+] |
| * link:https://netbeans.apache.org/tutorials/nbm-nodesapi2.html[+Part 3: Nodes API Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-property-editors.html[+Part 4: Property Editor API Tutorial+] |
| |
| |
| === Extending the NetBeans Platform |
| |
| The NetBeans module system is very extensible, meaning that you can add |
| features through different mechanisms: the Java's service provider interface, the |
| Lookup API (that also works with the service provider interface) and the |
| concept of "layers" (that works in a similar way to the Windows registry). |
| |
| * For an introduction to the Java Service Provider mechanism see Oracle's link:https://www.oracle.com/technical-resources/articles/javase/extensible.html[+Creating Extensible Applications With the Java Platform+] |
| * For an introduction to the NetBeans Lookup API see link:http://netbeans.dzone.com/articles/netbeans-lookups-explained[+NetBeans Lookups Explained!+]. |
| * You may also find link:http://netbeans.dzone.com/news/netbeans-extension-points[+How Do NetBeans Extension Points Work?+] of interest. |
| * The link:https://dzone.com/articles/how-create-pluggable-photo-alb[+How to Create a Pluggable Photo Album in Java+] |
| * The link:http://bits.netbeans.org/dev/javadoc/layers.html[+Description of Layer Registrations in NetBeans APIs+] explains how each module |
| in NetBeans registers files, documents, classes and more in a global registry that you can query. |
| |
| === Using Maven to build applications |
| |
| You can use Maven and the NetBeans Platform to build great applications. Here're some |
| tutorials to get you started: |
| |
| * link:http://wiki.netbeans.org/MavenBestPractices[+Maven Best Practices in NetBeans IDE+] |
| * link:http://bits.netbeans.org/mavenutilities/nbm-maven-plugin/[+About the NetBeans Module Maven Plugin+] |
| * link:https://netbeans.apache.org/tutorials/nbm-maven-commandline.html[+NetBeans Platform Maven Command Line Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-maven-quickstart.html[+NetBeans Platform Quick Start Using Maven+] |
| * link:https://netbeans.apache.org/tutorials/nbm-maven-modulesingle.html[+NetBeans Platform File Type Tutorial Using Maven+] |
| * link:https://netbeans.apache.org/tutorials/nbm-maven-modulesuite.html[+NetBeans Platform Selection Tutorial Using Maven+] |
| * link:https://netbeans.apache.org/tutorials/nbm-maven-crud.html[+NetBeans Platform CRUD Tutorial Using Maven+] |
| * link:http://blogs.oracle.com/geertjan/entry/mavenized_netbeans_platform_runtime_container[+Mavenized NetBeans Platform Runtime Container+] |
| * link:https://dzone.com/articles/how-create-maven-nb-project-type[+How to Create a Custom Project Type in a Mavenized NetBeans Platform Application+] |
| * link:https://dzone.com/articles/nb-how-create-javahelp-mavenized[+How to Create JavaHelp in a Mavenized NetBeans Platform Application+] |
| |
| === Using OSGi modules with the NetBeans Platform |
| |
| You can use OSGi modules within a NetBeans Platform. |
| |
| * http://wiki.apidesign.org/wiki/Netigso[OSGi and NetBeans] |
| * link:https://netbeans.apache.org/tutorials/nbm-osgi-quickstart.html[+NetBeans Platform Quick Start Using OSGi+] |
| * link:https://netbeans.apache.org/tutorials/nbm-emf.html[+NetBeans Platform EMF Integration Tutorial+] |
| |
| === Testing and diagnostics |
| |
| When building applications on top of the NetBeans Platform you want, of course, to test things. Also to diagnose what's going on. These are of help: |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-test.html[+NetBeans Platform Test Infrastructure Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-gesture.html[+NetBeans Platform Gesture Collection Infrastructure Tutorial+] |
| |
| === Sample applications. |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-paintapp.html[+Paint Application Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-feedreader.html[+Feed Reader Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-htmleditor.html[+HTML Editor Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-povray-1.html[+POV-Ray Renderer Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-crud.html[+Create/Read/Update/Delete (CRUD)+] |
| * link:https://netbeans.apache.org/tutorials/nbm-geospatial.html[+Geospatial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-workflow.html[+Workflow+] |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-ide.html[+Development Environment+] |
| |
| === How to develop editors |
| |
| Of course, the NetBeans Platform has many features to build top-noch editors (that's because |
| we build the NetBeans IDE on top of the platform :-)). Here's a list of tutorials |
| that you can use to build your own editors. |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-filetype.html[+File Type Integration Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-javacc-lexer.html[+JavaCC Lexer Generator Integration Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-javacc-parser.html[+JavaCC Parser Generator Integration Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-copyfqn.html[+Java Language Infrastructure Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-code-generator.html[+Code Generator Integration Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-code-completion.html[+Code Completion Integration Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-mark-occurrences.html[+Mark Occurrences Module Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-palette-api1.html[+Code Snippet Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-palette-api2.html[+Editor Component Palette Module Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-xmleditor.html[+XML Editor Extension Module Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-hyperlink.html[+Hyperlink Navigation Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-java-hint.html[+Java Hints Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-code-template.html[+Code Templates Tutorial+] |
| |
| === NetBeans APIs for Visualizing Data |
| |
| The NetBeans Platform has a powerful library (called the "NetBeans Visual Library") that you can use |
| to build complex user-interactive visualizations. |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-visual_library.html[+Visual Library Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-quick-start-visual.html[+Visual Library Tutorial for Java Applications+] |
| * link:http://tdamir.blogspot.com/2007/12/ddl-visualizer-visualize-sql-script.html[+Visualize SQL Scripts with the NetBeans Platform+] |
| * link:http://wiki.netbeans.org/VisualDatabaseExplorer[+A Visual Database Explorer for NetBeans+] |
| * link:http://java.dzone.com/news/how-create-visual-applications[+How to Create Visual Applications in Java?+] |
| * link:http://java.dzone.com/news/how-add-resize-functionality-v[+How to Add Resize Functionality to Visual Applications in Java?+] |
| * link:https://netbeans.org/community/magazine/html/04/visuallibrary.html[+Creative Uses of the Visual Library+] |
| |
| === Building custom project types |
| |
| Since we use the NetBeans Platform to build the NetBeans IDE, we use objects known as "Projects" to represent |
| Java, PHP or C/C++ "projects". |
| |
| You can use "projects" to represent a set of files or concepts organized in a hierarchy. Be either the list of |
| rails in a train station, or a hierarchy of parts of a component you're designing. |
| |
| These tutorials explain how to extend existing project types or to create your own. |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-projectsamples.html[+Project Sample Module Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-projectextension.html[+Project Type Extension Module Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-projecttype.html[+Project Type Module Tutorial+] |
| |
| === Templates |
| |
| We use "templates" to create files with some predefined content. |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-filetemplates.html[+File Template Module Tutorial+] |
| |
| === Installers |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-nbi.html[+Installer Integration Tutorial+] |
| |
| === Options window |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-options.html[+Options Window Module Tutorial+] |
| |
| === Property editors |
| |
| When you select an object in your application, the "Property Editor" window automatically shows |
| the properties of the object. Be it a plane, a train or a satellite. |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-propertyeditors-integration.html[+Property Editor Integration Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-nodesapi.html[+System Properties Module Tutorial+] |
| |
| === Quick search, Ribbon bars, Wizards |
| |
| The IDE has specific components that help you create quick search fields, ribbon bars and wizards. |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-quick-search.html[+Quick Search Integration Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-ribbonbar.html[+Ribbon Bar Tutorial+] |
| * link:https://netbeans.apache.org/tutorials/nbm-wizard.html[+Wizard Module Tutorial+] |
| |
| === Ant and Maven |
| |
| These are tutorials on how to use Ant and Maven with the NetBeans Platform. |
| |
| * link:https://netbeans.apache.org/tutorials/nbm-ant.html[+Ant+] |
| * link:https://netbeans.apache.org/tutorials/nbm-maven-commandline.html[+Maven+] |
| |
| [[API]] |
| == API Reference |
| |
| This is a list of most frequently used APIs in the NetBeans Platform. |
| |
| * link:http://bits.netbeans.org/dev/javadoc/index.html[+NetBeans API Javadoc+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/api.html[+Module System API+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-openide-windows/org/openide/windows/doc-files/api.html[+Window System API+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-openide-filesystems/org/openide/filesystems/doc-files/api.html[+Filesystems API+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-openide-loaders/org/openide/loaders/doc-files/api.html[+Datasystems API+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-openide-nodes/org/openide/nodes/doc-files/api.html[+Nodes API+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-openide-explorer/org/openide/explorer/doc-files/api.html[+Explorer API+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-openide-explorer/org/openide/explorer/doc-files/propertyViewCustomization.html[+Property Sheet Customization+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-netbeans-api-visual/org/netbeans/api/visual/widget/doc-files/documentation.html[+Visual Library API+] |
| * link:http://bits.netbeans.org/dev/javadoc/org-openide-util/org/openide/util/doc-files/api.html[+Utilities API+] |
| * link:http://bits.netbeans.org/dev/javadoc/branding.html[+Branding+] |
| * link:http://bits.netbeans.org/dev/javadoc/layers.html[+Description of Layer Registrations in NetBeans APIs+] |
| * link:http://bits.netbeans.org/dev/javadoc/apichanges.html[+Latest NetBeans API Changes+] |
| |