<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
    <head>  
        <title>NetBeans IDE - Project Management</title>
        <meta http-equiv="content-language" content="en">
        <meta name="description" content="DESCRIPTION HERE">
        <link rel="stylesheet" type="text/css" href="../../features.css">
        <link rel="stylesheet" type="text/css" href="/images_www/js/colorbox/colorbox.css">
    </head>
    <body>
        <script type="text/javascript" src="/images_www/js/colorbox/jquery.colorbox-min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $('a.cbox').colorbox({rel: 'cbox', opacity: 0.7});
            });
        </script>
        <div style="margin:10px 20px 0px 0px;">
            <h1>Project Management</h1>
            <p class="xintro">
                <a href="../../images_www/v7/3/features/ide-management-main-full.png"><img
                        src="../../images_www/v7/3/features/ide-management-main-cut.png"
                        alt="Project Management features in NetBeans IDE"
                        ><br>
                    <span class="font-11">Click image for fullscreen preview</span></a> 
            </p>
            <p class="intro">
                NetBeans IDE provides a variety of views 
                on your data, from multiple project 
                windows to file and hierarchy views,
                letting you drill 
                down into your data quickly and easily.
            </p>
            <div class="line">&nbsp;</div>

            <!-- left text section start -->
            <a name="o1"></a>
            <span id="im1" class="overview-right"><img src="../../images_www/v7/3/features/ide-management-project-cut.png" alt="Database Explorer"  /></span>
            <h2>Project Views</h2>
            <p>The Projects window is the main entry
                point to your project sources. It shows
                a logical view of important project
                content.</p>
            <p>In addition to the Projects window, the IDE
                provides the Files window, so that you can
                see all the files that belong to a project,
                and the Favorites window, where you can
                add folders and files so that they
                can be browsed within
                the IDE.</p>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <!-- right text section start -->
            <a name="o2"></a>
            <span class="overview-left" id="im2"><a href="../../images_www/v7/3/features/ide-management-file-cut.png" class="cbox" title="Navigator"><img src="../../images_www/v7/3/features/ide-management-file-cut.png" width="320" alt="SQL Editor" /></a></span>
            <h2>File Views</h2>
            <p>
                The Navigator window provides
                a compact view of the currently
                selected file and simplifies
                navigation between different
                parts of the file.
            </p>
            <p>For example, for Java files,
                the Navigator window shows
                a list of constructors,
                methods, and fields, while
                for HTML and CSS files it shows
                the logical structure
                of the selected document.
            <div class="line">&nbsp;</div>
            <!-- right text section end -->

            <!-- left text section start -->
            <a name="o3"></a>
            <span id="im3" class="overview-right"><a href="../../images_www/v7/3/features/ide-management-hierarchy-cut.png" class="cbox" title="Hierarchy Views"><img src="../../images_www/v7/3/features/ide-management-hierarchy-cut.png" width="320" alt=""  /></a></span>
            <h2>Hierarchy Views</h2>
            <p>
                The Hierarchy window displays the
                Supertypes and Subtypes of the
                currently selected Java file
                or the currently selected Java
                type under the cursor in the editor.</p>
            <p>The Hierarchy window integrates with
                the Navigator window and the Javadoc
                window, so that you can easily see the elements
                of the selected item, as well as its
                javadoc.</p>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <h2>See Also</h2>
            <ul class="bigger">
                <li><a href="../../community/releases/81/index.html">NetBeans IDE 8.1 Release Page</a> for a list of highlighted features in the latest stable release.</li>                
                <li><a href="../../kb/trails/java-se.html">General Java Development Learning Trail</a> for tutorials that will help you get started.</li> 
            </ul>

        </div>
    </body>
</html>
