Over a million developers have joined DZone.
Refcard #014

NetBeans IDE 7 Java Editor

A Well-Aligned JDK 7 Development Experience

by Geertjan Wielenga and Patrick Keegan

Get as much out of JDK 7 and NetBeans IDE 7 as their creators intended.

Free PDF
NetBeans IDE 7 Java Editor
Section 1

About NetBeans IDE

The NetBeans IDE has seen adoption snowballing over the past years. The icing on the cake has been the introduction of a completely new, rewritten, slick Java editor. You'll find this reference card helpful if you want to get as much out of the Java editor as its authors intended when creating it. It lists all the keyboard shortcuts in carefully thought out categories and it provides a thorough exposition of optimal handling of Java code in the editor, covering viewing, navigation, source handling, and refactoring.

Section 2

Getting NetBeans IDE

Go to http://download.netbeans.org/netbeans/6.1/final/

NetBeans Packs*

Web & Java EE Mobility Java SE Ruby C/C++ Early Access for PHP All
Base IDE • • • • • • •
Java SE • • • •
Web & Java EE • •
Ruby • •
C/C++ • •
Early Access for PHP •

Bundled Servers

GlassFish V2 UR2 • •
Apache Tomcat 6.0.16 • •

Net Beans IDE Java Quick Start Tutorial

This tutorial provides a very simple and quick introduction to the NetBeans IDE workflow by walking you through the creation of a simple "Hello World" Java console application. Once you are done with this tutorial, you will have a general knowledge of how to create, build, and run applications in the IDE.

To follow this tutorial, you need the following software and resources:

Software or Resource Version Required
NetBeans IDE Version 6.1 or version 6.0
Java Developer Kit (JDK) Version 6 or version 5
  1. Start NetBeans IDE. In the IDE, choose File > New Project (Ctrl-Shift-N).
  2. In the New Project wizard, expand the Java category and select Java Application. Then click Next.
  3. In the Name and Location page of the wizard, type "HelloWorldApp" in Project Name and type "helloworldapp.HelloWorldApp" in the Create Main Class field. Then Click finish.
  4. Because you have left the Create Main Class checkbox selected in the New Project wizard, the IDE has created a skeleton class for you. You can add the "HelloWorld!" message to the skeleton code by replacing the line:
    // TODO code application logic here

    with the line:
    System.out.println("Hello World!");

  5. From the IDE's menu bar, choose Run > Run Main Project (F6). The Output window should show you the "HelloWorld!" message.

Congratulations! Your program works! You now know how to accomplish some of the most common programming tasks in the IDE.

Section 3

Keyboard Shortcuts & Code Templates

Finding, Searching, and Replacing

Ctrl-F3 Search word at insert point
F3/Shift-F3 Find next/previous in file
Ctrl-F/H Find/Replace in file
Alt-F7 Find usages
Ctrl-Shift-P Find/replace in projects
Alt-Shift-U Find usages results
Alt-Shift-H Turn off search result highlights
Ctrl-R Rename
Ctrl-U, then U Convert selection to uppercase
Ctrl-U, then L Convert selection to lowercase
Ctrl-U, then S Toggle case of selection
Alt-Shift-V Paste formatted

Opening and Toggling Between Views

Ctrl-Tab (Ctrl-`) Toggle between open documents
Shift-Escape Maximize window (toggle)
Ctrl-F4/Ctrl-W Close currently selected window
Ctrl-Shift-F4 Close all windows
Shift-F10 Open contextual menu
Alt-Shift-D Undock window

Navigating through Source Code

Ctrl-O/Alt-Shift-O Go to type/file
Ctrl-Shift-T Go to JUnit test
Alt-O Go to source
Ctrl-B Go to declaration
Ctrl-G Go to line
Ctrl-Shift-M Toggle add/remove bookmark
Ctrl-Shift-Period/Comma Next/previous bookmark
Ctrl-Period/Comma Next/previous usage/compile error
Ctrl-Shift-1/2/3 Select in Projects/Files/Favorites
Ctrl-[ Move caret to matching bracket
Ctrl-K/Ctrl-Shift K Next/previous word match
Alt-Left/Alt-Right/Ctrl-Q Go backward/forward/to last edit

Compiling, Testing, and Running

F9 Compile package/ file
F11 Build main project
Shift-F11 Clean & build main project
Ctrl-Q Set request parameters
Ctrl-Shift-U Create JUnit test
Ctrl-F6/Alt-F6 Run JUnit test on file/project
F6/Shift-F6 Run main project/file


Ctrl-F5 Start debugging main project
Ctrl-Shift-F5 Start debugging current file
Ctrl-Shift-F6 Start debugging test for file (JUnit)
Shift-F5/F5 Stop/Continue debugging session
F4 Run to cursor location in file
F7/F8 Step into/over
Ctrl-F7 Step out
Ctrl-Alt-Up Go to called method
Ctrl-Alt-Down Go to calling method
Ctrl-F9 Evaluate expression
Ctrl-F8 Toggle breakpoint
Ctrl-Shift-F8 New breakpoint
Ctrl-Shift-F7 New watch

Coding in Java

Alt-Insert Generate code
Ctrl-Shift-I Fix all class imports
Alt-Shift-I Fix selected class's import
Alt-Shift-F Format selection
Alt-Shift Left/Right/Up/Down Shift lines left/right/up/down
Ctrl-Shift-Up/D Copy lines up/down
Ctrl/Alt-F12 Inspect members/hierarchy
Ctrl-/ Add/remove comment lines
Ctrl-E Delete current line


This table provides short descriptions of the refactoring operations that are available in the IDE, mostly from under the Refactoring menu and within the Java editor itself, when you right-click within it.

Refactoring Operation Description
Rename Enables you to change the name of a class, variable, or method to something more meaningful. In addition, it updates all source code in your project to reference the element by its new name.
Introduce Variable, Constant, Field, or Method Enables you to generate a statement based on the selected code and replace that block of code with a call to the statement.
Change Method Parameters Enables you to add parameters to a method and change the access modifier.
Encapsulate Fields Generates a getter method and and a setter method for a field and optionally updates all referencing code to access the field using the getter and setter methods.
Pull Up Moves methods and fields to a class that their current class inherits from.
Push Down Moves inner classes, methods, and fields to all subclasses of their current class.
Move Class Moves a class to another package or into another class. In addition, all source code in your project is updated to reference the class in its new location.
Copy Class Copies a class to the same or a different package.
Move Inner to Outer Level Moves an inner class one level up in hierarchy.
Convert Anonymous Class to Inner Converts an anonymous class to an inner class that contains a name and constructor. The anonymous inner class is replaced with a call to the new inner class.
Extract Interface Creates a new interface from the selected public non-static methods in a class or interface.
Extract Superclass Creates a new abstract class, changes the current class to extend the new class, and moves the selected methods and fields to the new class.
Use Supertype Where Possible Changes code that references the selected class (or other type) to instead use a supertype of that type.
Safely Delete Checks for references to a code element and then automatically deletes that element if no other code references it.

When typing in the Source Editor, you can generate the text in the right-column of the following list by typing the abbreviation that is listed in the left-column and then pressing Tab.

Java Editor Code Templates

En Enumeration
Ex Exception
Ob Object
Psf public static final
Psfb public static final boolean
Psfi public static final int
Psfs public static final String
St String
ab abstract
bo boolean
br break
ca catch (
cl class
cn continue
df default:
dowhile do { } while (condition);
eq equals
ex extends
fa false
fi final
fl float
forc for (Iterator it = collection.iterator(); it.hasNext( );) { Object elem = (Object) it.next( ); }
fore for (Object elem : iterable) { }
fori for (int i = 0; i < arr.length; i++) { }
fy finally
ie interface
ifelse if (condition){ }else { }
im implements
iof instanceof
ir import
le length
newo Object name = new Object(args);
pe protected
pr private
psf private static final
psfb private static final boolean
psfi private static final int
psfs private static final String
pst printStackTrace();
psvm public static void main(String[ ] args){ }
pu public
re return
serr System.err.println ("|");
sout System.out.println ("|");
st static
sw switch (
sy synchronized
tds Thread.dumpStack();
th throws
trycatch try {} catch (Exception e) {}
tw throw
twn throw new
wh while (
whileit while (it.hasNext()) { Object elem = (Object) it.next(); }

Mac OS Keyboard Shortcuts

In most cases, working with the IDE on the Mac is no different from working on other operating systems. Two significant differences do exist, however. Firstly, the Options window on the Mac is found under NetBeans > Preferences. Secondly, the About box is under NetBeans > About.

Scrolling and Selecting

Keys Action
Cmd-[ Moves the insertion point to the highlighted matching bracket. Note that this shortcut only works when the insertion point is located immediately after the opening bracket.
Cmd-Shift-[ Selects the block between a pair of brackets. Note that this shortcut only works when the insertion point is located immediately after either the opening or closing bracket.
Ctrl-G Jumps to any specified line.
Cmd-A Selects all text in the file.

Code Folding

Keys Action
Cmd-Minus (-) Collapses the block of code in which the insertion point is currently located.
Cmd-Plus (+) Expands the block of code which is adjacent to the insertion point.
Cmd-Shift-Minus (-) Collapses all blocks of code in the current file.
Cmd-Shift-Plus (+) Expands all blocks of code in the current file.

Cutting, Copying, Pasting, and Deleting Text

Keys Action
Cmd-Z Undo. Reverses a series of editor actions one at a time (excluding Save).
Cmd-Y Redo. Reverses a series of Undo commands one at a time.
Cmd-X Cut. Deletes the current selection and places it on the clipboard.
Cmd-C Copy. Copies the current selection to the clipboard.
Cmd-V Paste. Pastes the contents of the clipbard at the insert point.
Backspace Delete Deletes the current selection.
Cmd-E Deletes the current line.
Cmd-K Copies the word preceding the insertion point and then pastes it after the insertion point (the insertion point must be in the whitespace preceeding or following a word). Press K multiple times to cycle through preceding words in succession.
Cmd-Shift-K Copies the word following the insertion point and pastes it at the insertion point (the insertion point must be located in the whitespace preceeding or following a word.) Press L multiple times to cycle through consecutive following words.

To Change Default Settings:

  1. Choose Tools > Options from the main menu.
  2. For code templates, select Editor and click the Code Templates tab. Here you can also change the expansion key, from Tab to something else.
  3. For keyboard shortcuts, select Keymap and choose a profile from the Profile drop-down list.
Section 4

10 handy editor shortcuts

The following are some of the many cool NetBeans IDE 6.0 keyboard shortcuts that no programmer will be able to do without, once you know they're there. Not all of these are new in 6.0, some were there before, but deserve to be highlighted because often they're overlooked.

  1. Move/copy up/down. Press Ctrl-Shift-Up and the current selection is copied to the lines right above the current selection. Press Alt instead of Ctrl and it is moved instead of copied. Press Down instead of Up and the lines of code will be copied below the current selection, as below: Move/copy up/down
  2. Capture inner/outer syntactic element. Each time you press Alt-Shift-Period, the selection expands to a successively wider syntactic element. For example, below one statement was selected, the key combination Alt-Shift-Period was pressed, and then the complete content of the surrounding block statement was shown to be selected. The selection expands from the current statement to surrounding block statements to the surrounding method and, from there, to the surrounding class and further. To successively narrow the selection, press Alt-Shift-Comma, instead of Alt-Shift-Period.
    rc014-netbeans_java_img02_capture (30K)
  3. Generate code skeletons. Whenever you want to generate commonly needed pieces of code, such 10 Handy Editor Shortcuts in NetBeans IDE 6.0 http://as constructors, getters, and setters, simply click Alt-Insert, and a small popup appears iwth a list of items from which you can select.
    Generate code skeletons
  4. Inplace rename. If you want to change a variable, method, or other item, of which more than are used in your code, press Ctrl-R, and you will see that all instances of the item turn blue at the same time, as shown below. Now, when you change the selected item, all the other instances change at the same time, until you press Escape, at which point the inplace rename mode comes to an end.
    Inplace rename
  5. Add/Remove comment lines. Select one or more lines, press Ctrl-/ and then the selected lines are commented out, as shown below. Press the same keys again and the commented lines will no longer be commented. This was, of course, also possible in previous releases, but previously there were two different keyboard shortcuts, one for commenting and one for uncommenting. Now that they have been combined into one shortcut, you can quickly toggle between comment and uncomment, which makes this activity much faster and more efficient.
    Add/Remove Comment Lines
  6. Inspect members/hierarchy. Both the members of the current class as well as its hierarchy can be displayed and then filtered. Press Alt-F12 and the ancestors of the current file are shown. On the other hand, if you press Ctrl-F12, the current file's members are displayed, as shown here:
    Inspect members/hierarchy
  7. Switch between documents. When you have multiple documents open at the same time, press Ctrl and Tab, and then a small popup appears. You can scroll through the popup, which displays all the open documents, and then choose the document that you want to open.
    Switch between documents
  8. Jump to last edit. Often, you find yourself in a situation where you have while you currently find yourself in a completely different document. How place where you were last editing your code? That is likely to be the place to, in order to do some more editing. Now, whenever you click Ctrl-Q, the found, and the cursor lands on the line where the last edit took place. Alternatively, button shown below, in the top left corner of the Source Editor:
    Jump to last edit
  9. Bookmarks. When you press Ctrl-Shift-M, the current line is "bookmarked". What this means is that you can later quickly cycle back/forward to it (with Ctrl-Shift-Period and Ctrl-Shift-Comma). The bookmarked line gets a small icon in the left sidebar, as shown below, until you press Ctrl-Shift-M on the line again, to remove the bookmark:
  10. Highlight exit points. Place the cursor on the return type and you will immediately see all exit points highlighted:
    Highlight exit points
Section 5

Quick Options Window Overview

The Options window lets you customize NetBeans IDE in a number of ways. Most people don't know how much can be customized there. The table below provides an overview.

General Sets the IDE-wide browser and the proxy settings.
  • Web Browser
  • Proxy Settings
Editor Sets the editor-specific options, specifically those relating to code folding, code completion, camel case behavior, indentation, code templates, and macros.
  • Code Folding
  • Code Completion
  • Camel Case Behavior
  • Indentation
  • Code Templates
  • Macros
Java Code Sets options specifically for the Java editor, relating to the formatting, hints, mark occurrences, and task list.
  • Formatting
  • Hints
  • Mark Occurrences
  • Tasklist
Fonts & Colors Sets the fonts and colors for syntax, highlighting, annotations, and diff viewer.
  • Syntax
  • Highlighting
  • Annotations
  • Diff
Keymap Sets the keyboard profile to be used throughout the IDE. By default, profiles are provided for NetBeans, Eclipse, and Emacs. A legacy profile is also provided, for NetBeans 5.5 keyboard shortcuts, which were radically rewritten in NetBeans IDE 6.0.
  • NetBeans Profile
  • Eclipse Profile
  • Emacs Profile
  • NetBeans 5.5 Profile
Miscellaneous Sets the options for Ant processing, appearance, diffing, the Matisse GUI Builder, JavaScript, Profiler, ToDo Tasks, and Versioning.
  • Ant
  • Appearance
  • Diff
  • GUI Builder
  • Profiler
  • ToDo Tasks
  • JavaScript
  • Versioning
Section 6


Resource URL
NetBeans DZone Community http://netbeans.dzone.com/
NetBeans Tutorials http://www.netbeans.org/kb/index.html
NetBeans Video Tutorials http://www.netbeans.org/kb/60/screencasts.html
NetBeans Blogs http://planetnetbeans.org/
NetBeans TV http://netbeans.tv/
NetBeans Weekly Newsletter: http://www.netbeans.org/community/news/newsletter/latest.html

Thanks to the following people who kindly gave of their time and expertise in reviewing this refcard: Adam Bien, Tonny Kohar, Varun Nischal, Kristian Rink, and Tom Wheeler.


  • Featured
  • Latest
  • Popular
Getting Started With Docker
Teaches you typical Docker workflows, building images, creating Dockerfiles, and includes helpful commands to easily automate infrastructure and contain your distributed application.
10.3k 7,328
Getting Started With Real User Monitoring
Teaches you how to use new web standards—like W3C’s Beacon API—to see how your site is performing for actual users, letting you better understand how to improve overall user experience.
4,482 3,703
Core Java
Gives you an overview of key aspects of the Java language and references on the core library, commonly used tools, and new Java 8 features.
104.1k 264.2k
JavaFX 8
Gives you what you need to start using the powerful JavaFX 8 UI and graphics tool with code snippets and visual examples of shapes and controls.
6,818 9,013
Continuous Delivery With Jenkins Workflow
Provides an introduction to the Jenkins Workflow plugin, a tool that extends the popular CD application to manage even the most complex software pipelines and help you continuously deliver more efficiently.
8,707 9,826
Functional Programming in JavaScript
Explains functions, data types, and techniques to demonstrate the functional paradigm through the familiar JavaScript language.
12k 8,737
Java Caching
Explores the building blocks of JCache and other caching APIs, as well as multiple strategies for implementing temporary data storage in your application.
10.5k 10.6k
Getting Started With Microservices
Still re-deploying your entire application for one small update? Microservices deploy modular updates and increase the speed of application deployments.
13.8k 14.3k
Getting Started With MQTT
Explores the fundamentals of MQTT, including message types, QoS levels, and security.
6,090 7,179
Monitoring NGINX
Overcome dropped connections, server errors, and more by efficiently monitoring your NGINX web server.
4,885 3,829
Getting Started With Apache Tomcat
Learn Apache Tomcat, a pure Java open-source web server that implements the Java Servlet, JavaServer Pages, and Expression Language specifications.
8,874 7,348
IntelliJ IDEA Essentials
Helps Java developers navigate the various facets of this world-class IDE, with tips, tricks, shortcuts, and quick tutorials on editor basics, navigation, and more.
20.4k 91.1k
{{ card.title }}
{{card.downloads | formatCount }} {{card.views | formatCount }}

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}