<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!--
Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
-->

<html>
<head>
        <title>Video of JavaFX Support in NetBeans IDE</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> 
        <meta name="description" content="This screencast demonstrates some new JavaFX related features implemented in NetBeans IDE 7.4.">
</head>
<body>
    

<h1>Video of JavaFX Support in NetBeans IDE</h1>

<table>
<tr>
<td class="valign-top">

<p>This screencast demonstrates the following JavaFX-related features implemented in NetBeans IDE 7.4</p>
<ul>
<li>JavaFX runtime classpath</li>
<li>JavaFX and Java SE projects alignment</li>
<li>JavaFX Maven project template</li>
<li>JavaFX file types in Maven projects</li>
</ul>
<P>Authors: Petr Somol, Alyona Stashkova <br>
  Time: 7:04 </p>
 <p><a href="http://bits.netbeans.org/media/netbeans_fx.mp4">Watch full size/Download</a> (.mp4)
                        (Ctrl-Click to download, 19,5 MB)</p>

 <div class="feedback-box"><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Screencast%20-%20JavaFX%20Support%20in%20NetBeans%20IDE">Send Us Your Feedback</a></div>


 <br style="clear:both;">
    </td>

                <td width="5">&nbsp; </td>
      <td class="valign-top" width="486">
   <script src="/images_www/js/mediaplayer-5.2/swfobject.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/netbeans_fx.mp4';
            var s1 = new SWFObject('/images_www/js/mediaplayer-5.2/player.swf','player','530','340','9');
            s1.addParam('allowfullscreen','true');
            s1.addParam('allowscriptaccess','always');
            s1.addParam('flashvars','file='+targetFile+'&autostart=true');
            s1.write('flashContent');
	});
    </script>
 
  </td>
  </tr>
        </table>
        <h2>Related links</h2>

        <ul>
            <li><a href="http://wiki.netbeans.org/NewAndNoteworthyNB74">NetBeans 74 New And Noteworthy</a></li>
			<li><a href="http://wiki.netbeans.org/JavaFX">JavaFX - NetBeans Wiki</a></li>
			<li><a href="http://docs.oracle.com/javafx/">JavaFX 2 Documentation Home</a></li>
	    </ul>

</body>
</html>
