<!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>Vídeo do Suporte ao JavaFX no 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>Vídeo do Suporte ao JavaFX no NetBeans IDE</h1>

<table>
<tr>
<td class="valign-top">

<p>Este screencast demonstra as seguintes funcionalidades relacionadas ao JavaFX implementadas no NetBeans IDE 7.4</p>
<ul>
<li>Classpath de runtime de JavaFX</li>
<li>alinhamento de projetos JavaFX e Java SE</li>
<li>modelo do projeto JavaFX Maven</li>
<li>tipos de arquivo JavaFX nos projetos Maven</li>
</ul>
<P>Autores: Petr Somol, Alyona Stashkova <br> Hora: 7:04 </p>
 <p><a href="http://bits.netbeans.org/media/netbeans_fx.mp4">Veja em tela cheia/Download</a> (.mp4) (Ctrl-Clique para fazer o 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">Envie-nos Seu 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>Links relacionados</h2>

        <ul>
            <li><a href="http://wiki.netbeans.org/NewAndNoteworthyNB74">Novidades e Destaques do NetBeans 7.4</a></li>
			<li><a href="http://wiki.netbeans.org/JavaFX">JavaFX - Wiki do NetBeans</a></li>
			<li><a href="http://docs.oracle.com/javafx/">Home da Documentação JavaFX 2</a></li>
	    </ul>

</body>
</html>
