<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <!--
        
        Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
        
        -->
        <title>Video: NetBeans IDE 7.3.1 Overview</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>
        <h1>NetBeans IDE 7.3.1 Overview</h1>

        <p>In this video you will see an overview of the Java EE 7 features provided by NetBeans IDE 7.3.1. 
            It shows the project templates, samples, file templates, and editor features that enable you to 
            get the most out of Java EE 7.</p>
        <!-- New description and link to screencast needed here -->
        <p> <a href="https://netbeans.org/community/releases/73/">NetBeans IDE 7.3.1</a> 
            provides first-class comprehensive support for the newest Java technologies and latest Java enhancements. 
            It is the first IDE providing support for JDK 7, Java EE 7, and JavaFX 2. 
		</p>
        <p><a href="http://bits.netbeans.org/media/nb731-javaee7-launch-final-with-sound.mp4">Download this video</a> [Size: 6 MB]
        </p>

        <br style="clear: both;">

        <script src="/images_www/js/mediaplayer-5.9/jwplayer.js" type="text/javascript"></script>
        <div id="player" >
            <center>
                <div id="flashContent"></div>
            </center>
        </div>
        <script type="text/javascript">
            $(function(){
                var targetFile='http://bits.netbeans.org/media/nb731-javaee7-launch-final-with-sound.mp4';
                jwplayer('flashContent').setup({
	                'id': 'flashContentId',
	                'width': '960',
	                'height': '540',
	                'autostart': 'true',
	                'file': targetFile,
	                'controlbar':{position:'bottom'},
	                'modes': [
	                      {type: 'html5'},
	                      {type: 'flash', src: '/images_www/js/mediaplayer-5.9/player.swf'},
	                      {type: 'download'}
	                         ]
	           });
            });
        </script>
        <br/>
       
        <h2>Related Links</h2>
        <ul>
            <li><a href="../../../kb/index.html">NetBeans IDE Tutorials</a> </li>
                    <li><a href="../../docs/intro-screencasts.html">NetBeans IDE Screencasts</a> </li>
            <li><a href="../../../community/index.html">NetBeans Community</a> </li>
        </ul>
        <div class="feedback-box" style="float: left;"> <a
                href="/about/contact_form.html?to=3&amp;subject=Feedback:%20NetBeans%207.3.1%20overview%20screencast">Send
                Us
                Your
                Feedback</a> </div>
        <br class="cear" style="clear:both"/>
    </body>
</html>
