<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Silveira Neto &#187; draggable</title>
	<atom:link href="http://silveiraneto.net/tag/draggable/feed/" rel="self" type="application/rss+xml" />
	<link>http://silveiraneto.net</link>
	<description></description>
	<lastBuildDate>Fri, 09 Mar 2012 04:13:27 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JavaFX, Duke Potato</title>
		<link>http://silveiraneto.net/2008/10/04/javafx-duke-potato/</link>
		<comments>http://silveiraneto.net/2008/10/04/javafx-duke-potato/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 19:04:01 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[draggable]]></category>
		<category><![CDATA[duke]]></category>
		<category><![CDATA[Duke Potato]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Mr Potato Head]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[screencast]]></category>
		<category><![CDATA[vídeo]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=1327</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2008/10/04/javafx-duke-potato/" title="JavaFX, Duke Potato"></a>Do you know the toy Mr. Potato Head? Now meet the Java Potato. Duke images here from previous dukes I posted and other images from Open Clipart Project. Java Web Start: The code: package dukepotato; &#160; import javafx.application.Frame; import javafx.application.Stage; &#8230;<p class="read-more"><a href="http://silveiraneto.net/2008/10/04/javafx-duke-potato/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2008/10/04/javafx-duke-potato/" title="JavaFX, Duke Potato"></a><p>Do you know the toy <a title="Wikipédia, inglês" href="http://en.wikipedia.org/wiki/Mr_potato_head">Mr. Potato Head</a>? Now meet the Java Potato.</p>
<p style="text-align: center;"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/6NrUdp5XX_o&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/6NrUdp5XX_o&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></object></p>
<p>Duke images here from <a title="Dukes" href="http://silveiraneto.net/tag/duke">previous dukes I posted</a> and other images from <a title="Open Clipart" href="http://openclipart.org/">Open Clipart Project</a>.</p>
<p>Java Web Start:</p>
<p style="text-align: center;"><a title="Click to launch" href="http://silveiraneto.net/downloads/dukepotato/launch.jnlp"><img class="size-full wp-image-1474 aligncenter" title="webstart" src="http://silveiraneto.net/wp-content/uploads/2008/10/webstart.png" alt="" width="88" height="23" /></a></p>
<p>The code:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">dukepotato</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.application.Frame</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.application.Stage</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.CustomNode</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.Node</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.Group</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.input.MouseEvent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.geometry.Circle</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.paint.Color</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.image.ImageView</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.image.Image</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Img <span style="color: #000000; font-weight: bold;">extends</span> ImageView<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span>  attribute content<span style="color: #339933;">:</span> Node<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span>  attribute src<span style="color: #339933;">:</span> <span style="color: #003399;">String</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> attribute endX <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute endY <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute startX <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute startY <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
&nbsp;
    override attribute translateX <span style="color: #339933;">=</span> bind endX<span style="color: #339933;">;</span>
    override attribute translateY <span style="color: #339933;">=</span> bind endY<span style="color: #339933;">;</span>
    override attribute blocksMouse <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
    init <span style="color: #009900;">&#123;</span>
        image <span style="color: #339933;">=</span> <span style="color: #003399;">Image</span> <span style="color: #009900;">&#123;</span>
            url<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;{__DIR__}/{src}&quot;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    override attribute onMousePressed <span style="color: #339933;">=</span> function<span style="color: #009900;">&#40;</span>e<span style="color: #339933;">:</span><span style="color: #003399;">MouseEvent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
        startX <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>endX<span style="color: #339933;">;</span>
        startY <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>endY<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    override attribute onMouseDragged <span style="color: #339933;">=</span> function<span style="color: #009900;">&#40;</span>e<span style="color: #339933;">:</span><span style="color: #003399;">MouseEvent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
        endX <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>startX<span style="color: #339933;">;</span>
        endY <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>startY<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
var dukesimages <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;duke1.png&quot;</span>, <span style="color: #0000ff;">&quot;duke2.png&quot;</span>, <span style="color: #0000ff;">&quot;duke3.png&quot;</span>, <span style="color: #0000ff;">&quot;duke4.png&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
var dukes <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>image in dukesimages<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003399;">Image</span> <span style="color: #009900;">&#123;</span>
        url<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;{__DIR__}/{image}&quot;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
var index <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
var duke <span style="color: #339933;">=</span> ImageView <span style="color: #009900;">&#123;</span>
    x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">200</span>, y<span style="color: #339933;">:</span><span style="color: #cc66cc;">170</span>
    image<span style="color: #339933;">:</span> bind dukes<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    onMouseClicked<span style="color: #339933;">:</span> function<span style="color: #009900;">&#40;</span> e<span style="color: #339933;">:</span> <span style="color: #003399;">MouseEvent</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
        index <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>index <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> mod sizeof dukesimages<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
var hat <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;hat.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">370</span> <span style="color: #009900;">&#125;</span>
var partyhat <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;party_hat.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">160</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">5</span> <span style="color: #009900;">&#125;</span>
var cap <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;cap.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">230</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">10</span> <span style="color: #009900;">&#125;</span>
var cake <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;cake.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">526</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">190</span> <span style="color: #009900;">&#125;</span>
var glove <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;glove.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">338</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">363</span> <span style="color: #009900;">&#125;</span>
var baseball <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;baseball.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">548</span>, y<span style="color: #339933;">:</span><span style="color: #cc66cc;">373</span> <span style="color: #009900;">&#125;</span>
var pencil <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;pencil.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">451</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">365</span> <span style="color: #009900;">&#125;</span>
var camera <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;camera.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">125</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">380</span> <span style="color: #009900;">&#125;</span>
var coffee <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;coffee.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">541</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">114</span> <span style="color: #009900;">&#125;</span>
var burger <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;burger.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">542</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">282</span> <span style="color: #009900;">&#125;</span>
var diamond <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;diamond.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">243</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">383</span> <span style="color: #009900;">&#125;</span>
var pliers <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;pliers.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">20</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">368</span> <span style="color: #009900;">&#125;</span>
var rubikcube <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;rubikcube.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">37</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">295</span> <span style="color: #009900;">&#125;</span>
var syringe <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;syringe.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">35</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">245</span> <span style="color: #009900;">&#125;</span>
var hourglass <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;hourglass.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">35</span>, y<span style="color: #339933;">:</span> <span style="color: #cc66cc;">127</span> <span style="color: #009900;">&#125;</span>
var adventurehat <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;adventurehat.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">8</span>, y<span style="color: #339933;">:</span><span style="color: #cc66cc;">30</span> <span style="color: #009900;">&#125;</span>
var tie <span style="color: #339933;">=</span> Img <span style="color: #009900;">&#123;</span> src<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;tie.png&quot;</span>, x<span style="color: #339933;">:</span> <span style="color: #cc66cc;">547</span>, y<span style="color: #339933;">:</span><span style="color: #cc66cc;">35</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003399;">Frame</span> <span style="color: #009900;">&#123;</span>
    title<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;Duke Potato&quot;</span>
    width<span style="color: #339933;">:</span> <span style="color: #cc66cc;">640</span>
    height<span style="color: #339933;">:</span> <span style="color: #cc66cc;">480</span>
    closeAction<span style="color: #339933;">:</span> function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        java.<span style="color: #006633;">lang</span>.<span style="color: #003399;">System</span>.<span style="color: #006633;">exit</span><span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    visible<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>
&nbsp;
    stage<span style="color: #339933;">:</span> Stage <span style="color: #009900;">&#123;</span>
        content<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>duke, hat, partyhat, cake, adventurehat, cap, glove,
            baseball, pencil, camera, coffee, burger, diamond,
            pliers, rubikcube, syringe, hourglass, tie<span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<ul>
<li>Lines 14 to 42 is the same dragging approach I showed in the post <a href="http://silveiraneto.net/2008/08/11/javafx-draggable-node/">Draggable Nodes</a>, but this time creating a class that inherits the behavior of ImageView.</li>
<li>Lines 44 to 57 is the Duke that changes when you click on it. It cycles over the dukesimages list.</li>
<li>Lines 59 to 75 is just instantiations of all toys and objects we will use to dress the Duke. Look how easier was to create and place a image.</li>
<li>Lines 78 to the end is just creating a Frame and putting all elements on it.</li>
</ul>
<p><strong>Download</strong> a package with the NetBeans project, sources, libraries and images, <a href="http://silveiraneto.net/downloads/DukePotato.tar.gz">DukePotato.tar.gz</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2008/10/04/javafx-duke-potato/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>JavaFX, Draggable Nodes</title>
		<link>http://silveiraneto.net/2008/08/11/javafx-draggable-node/</link>
		<comments>http://silveiraneto.net/2008/08/11/javafx-draggable-node/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 19:18:34 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[Drag]]></category>
		<category><![CDATA[draggable]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Mouse]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=1064</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2008/08/11/javafx-draggable-node/" title="JavaFX, Draggable Nodes"></a>One thing that I like a lot to do with JavaFX is draggable objects. Due to some recent changes in the JavaFX syntax my old codes for that are no longer working. Joshua Marinacci from Sun&#8217;s JavaFX engineering team and &#8230;<p class="read-more"><a href="http://silveiraneto.net/2008/08/11/javafx-draggable-node/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2008/08/11/javafx-draggable-node/" title="JavaFX, Draggable Nodes"></a><p>One thing that I like a lot to do with JavaFX is draggable objects. Due to some recent changes in the JavaFX syntax my <a href="http://silveiraneto.net/2008/02/16/draggable-and-growable-ball-in-javafx/">old codes for that</a> are no longer working. <a href="http://weblogs.java.net/blog/joshy/">Joshua Marinacci</a> from Sun&#8217;s JavaFX engineering team and other guys from the JavaFX community gave me some tips. Here some strategies I&#8217;m using for making draggable nodes in JavaFX.</p>
<p>In this first example, a simple draggable ellipse.<br />
<center><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/pAJHH-mPLaQ&#038;hl=pt-br&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/pAJHH-mPLaQ&#038;hl=pt-br&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></center><br />
video url: <a href="http://www.youtube.com/watch?v=pAJHH-mPLaQ">http://www.youtube.com/watch?v=pAJHH-mPLaQ</a></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.application.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.paint.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.geometry.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.input.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">Frame</span> <span style="color: #009900;">&#123;</span>
    width<span style="color: #339933;">:</span> <span style="color: #cc66cc;">300</span>, height<span style="color: #339933;">:</span> <span style="color: #cc66cc;">300</span>, visible<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>
    stage<span style="color: #339933;">:</span> Stage <span style="color: #009900;">&#123;</span>
        content<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
            Ellipse <span style="color: #009900;">&#123;</span>
                var endX <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span> var endY <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span>
                var startX <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span> var startY <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span>
                centerX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">150</span>, centerY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">150</span>
                radiusX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">80</span>, radiusY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">40</span>
                fill<span style="color: #339933;">:</span> <span style="color: #003399;">Color</span>.<span style="color: #006633;">ORANGE</span>
                translateX<span style="color: #339933;">:</span> bind endX
                translateY<span style="color: #339933;">:</span> bind endY
                onMousePressed<span style="color: #339933;">:</span> function<span style="color: #009900;">&#40;</span>e<span style="color: #339933;">:</span><span style="color: #003399;">MouseEvent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
                    startX <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>endX<span style="color: #339933;">;</span>
                    startY <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>endY<span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                onMouseDragged<span style="color: #339933;">:</span> function<span style="color: #009900;">&#40;</span>e<span style="color: #339933;">:</span><span style="color: #003399;">MouseEvent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
                    endX <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>startX<span style="color: #339933;">;</span>
                    endY <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>startY<span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#93;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>When you need to create a group of draggable objects, you can try thie approach of a draggable group like this. Inside on it, you can put whatever you want.</p>
<p><center><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/mHOcPRrgQCQ&#038;hl=pt-br&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/mHOcPRrgQCQ&#038;hl=pt-br&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></center><br />
Video url: <a href="http://www.youtube.com/watch?v=mHOcPRrgQCQ">http://www.youtube.com/watch?v=mHOcPRrgQCQ</a></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.application.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.paint.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.geometry.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.input.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.effect.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.image.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.animation.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// a graggable group</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DragGroup <span style="color: #000000; font-weight: bold;">extends</span> CustomNode<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> attribute content<span style="color: #339933;">:</span> Node<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> attribute endX <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute endY <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> attribute startX <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute startY <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> function create<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> Node <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #003399;">Group</span><span style="color: #009900;">&#123;</span>
            translateX<span style="color: #339933;">:</span> bind endX
            translateY<span style="color: #339933;">:</span> bind endY
            content<span style="color: #339933;">:</span> bind content
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    override attribute onMousePressed <span style="color: #339933;">=</span> function<span style="color: #009900;">&#40;</span>e<span style="color: #339933;">:</span><span style="color: #003399;">MouseEvent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
        startX <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>endX<span style="color: #339933;">;</span>
        startY <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>endY<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    override attribute onMouseDragged <span style="color: #339933;">=</span> function<span style="color: #009900;">&#40;</span>e<span style="color: #339933;">:</span><span style="color: #003399;">MouseEvent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
        endX <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>startX<span style="color: #339933;">;</span>
        endY <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>startY<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// angle animation, cycles between 0 to 360 in 36 seconds</span>
var angle <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
var angleAnimation <span style="color: #339933;">=</span> Timeline <span style="color: #009900;">&#123;</span>
    repeatCount<span style="color: #339933;">:</span> Timeline.<span style="color: #006633;">INDEFINITE</span>
    keyFrames <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
        KeyFrame <span style="color: #009900;">&#123;</span>
            time<span style="color: #339933;">:</span> 0s
            values<span style="color: #339933;">:</span> 
                    angle <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0.0</span>
        <span style="color: #009900;">&#125;</span>,
        KeyFrame<span style="color: #009900;">&#123;</span>
            time<span style="color: #339933;">:</span> 36s
            values <span style="color: #339933;">:</span>  
                    angle <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">360.0</span> tween Interpolator.<span style="color: #006633;">LINEAR</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// some pictures from my Flickr albums </span>
var me    <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://farm4.static.flickr.com/3042/2746737338_aa3041f283_m.jpg&quot;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
&nbsp;
var dog   <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://farm4.static.flickr.com/3184/2717290793_ec14c26a85_m.jpg&quot;</span><span style="color: #339933;">;</span>
var plant <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://farm4.static.flickr.com/3014/2731177705_bed6d6b8fa_m.jpg&quot;</span><span style="color: #339933;">;</span>
var bird  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://farm4.static.flickr.com/3190/2734919599_a0110e7ce0_m.jpg&quot;</span><span style="color: #339933;">;</span>
var me_89  <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://farm3.static.flickr.com/2138/2308085138_7b296cc5d0_m.jpg&quot;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #003399;">Frame</span> <span style="color: #009900;">&#123;</span>    
    width<span style="color: #339933;">:</span> <span style="color: #cc66cc;">640</span>, height<span style="color: #339933;">:</span> <span style="color: #cc66cc;">480</span>, visible<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>
    stage<span style="color: #339933;">:</span> Stage <span style="color: #009900;">&#123;</span>
        fill<span style="color: #339933;">:</span> <span style="color: #003399;">Color</span>.<span style="color: #006633;">BLACK</span>
        content<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
            DragGroup<span style="color: #009900;">&#123;</span>
                content<span style="color: #339933;">:</span> ImageView <span style="color: #009900;">&#123;</span>
                    anchorX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">120</span>, anchorY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">90</span>
                    rotate<span style="color: #339933;">:</span> bind <span style="color: #cc66cc;">30</span> <span style="color: #339933;">+</span> angle
                    image<span style="color: #339933;">:</span> <span style="color: #003399;">Image</span> <span style="color: #009900;">&#123;</span> backgroundLoading<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>, url<span style="color: #339933;">:</span> me <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>,
            DragGroup <span style="color: #009900;">&#123;</span>
                translateX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">300</span>, translateY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">50</span>
                content<span style="color: #339933;">:</span> ImageView <span style="color: #009900;">&#123;</span>
                    anchorX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">120</span>, anchorY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">90</span>
                    rotate<span style="color: #339933;">:</span> bind <span style="color: #339933;">-</span><span style="color: #cc66cc;">30</span> <span style="color: #339933;">+</span> angle
                    image<span style="color: #339933;">:</span> <span style="color: #003399;">Image</span> <span style="color: #009900;">&#123;</span> backgroundLoading<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>, url<span style="color: #339933;">:</span> dog <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>,
            DragGroup <span style="color: #009900;">&#123;</span>
                translateX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">300</span>, translateY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">300</span>
                content<span style="color: #339933;">:</span> ImageView <span style="color: #009900;">&#123;</span>
                    anchorX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">120</span>, anchorY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">90</span>
                    rotate<span style="color: #339933;">:</span> bind <span style="color: #cc66cc;">90</span> <span style="color: #339933;">+</span> angle
                    image<span style="color: #339933;">:</span> <span style="color: #003399;">Image</span> <span style="color: #009900;">&#123;</span> backgroundLoading<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>, url<span style="color: #339933;">:</span> plant <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>                
            <span style="color: #009900;">&#125;</span>,
            DragGroup <span style="color: #009900;">&#123;</span>
                translateX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">200</span>
                translateY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">200</span>
                content<span style="color: #339933;">:</span> ImageView <span style="color: #009900;">&#123;</span>
                    anchorX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">120</span>, anchorY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">90</span>
                    rotate<span style="color: #339933;">:</span> bind <span style="color: #cc66cc;">90</span> <span style="color: #339933;">+</span> angle
                    image<span style="color: #339933;">:</span> <span style="color: #003399;">Image</span> <span style="color: #009900;">&#123;</span> backgroundLoading<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>, url<span style="color: #339933;">:</span> bird <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>                
            <span style="color: #009900;">&#125;</span>,
            DragGroup <span style="color: #009900;">&#123;</span>
                translateX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">30</span>
                translateY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">200</span>
                content<span style="color: #339933;">:</span> ImageView <span style="color: #009900;">&#123;</span>
                    anchorX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">85</span>, anchorY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">120</span>
                    rotate<span style="color: #339933;">:</span> bind angle <span style="color: #339933;">+</span> <span style="color: #cc66cc;">180</span>
                    image<span style="color: #339933;">:</span> <span style="color: #003399;">Image</span> <span style="color: #009900;">&#123;</span> backgroundLoading<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>, url<span style="color: #339933;">:</span> me_89 <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>                
            <span style="color: #009900;">&#125;</span>,
        <span style="color: #009900;">&#93;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
&nbsp;
    closeAction<span style="color: #339933;">:</span> function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
        java.<span style="color: #006633;">lang</span>.<span style="color: #003399;">System</span>.<span style="color: #006633;">exit</span><span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
angleAnimation.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>One more example, using the same class DragGroup, we can put multiple nodes using lists.</p>
<p><center><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gJqy7EdtEqs&#038;hl=pt-br&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/gJqy7EdtEqs&#038;hl=pt-br&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></center><br />
Video url: <a href="http://www.youtube.com/watch?v=gJqy7EdtEqs">http://www.youtube.com/watch?v=gJqy7EdtEqs</a></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.application.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.geometry.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.paint.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.input.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.animation.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.lang.Math</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Class to create a draggable group of objects</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DragGroup <span style="color: #000000; font-weight: bold;">extends</span> CustomNode<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> attribute content<span style="color: #339933;">:</span> Node<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> attribute endX <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute endY <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> attribute startX <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute startY <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
&nbsp;
    override attribute onMousePressed <span style="color: #339933;">=</span> function<span style="color: #009900;">&#40;</span>e<span style="color: #339933;">:</span><span style="color: #003399;">MouseEvent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
        startX <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>endX<span style="color: #339933;">;</span>
        startY <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>endY<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    override attribute onMouseDragged <span style="color: #339933;">=</span> function<span style="color: #009900;">&#40;</span>e<span style="color: #339933;">:</span><span style="color: #003399;">MouseEvent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
        endX <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>startX<span style="color: #339933;">;</span>
        endY <span style="color: #339933;">=</span> e.<span style="color: #006633;">getDragY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>startY<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> function create<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> Node <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #003399;">Group</span><span style="color: #009900;">&#123;</span>
            translateX<span style="color: #339933;">:</span> bind endX
            translateY<span style="color: #339933;">:</span> bind endY
            content<span style="color: #339933;">:</span> bind content
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// angle animation, cycles between 0 to 360 in 10 seconds</span>
var angle <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
var angleAnimation <span style="color: #339933;">=</span> Timeline <span style="color: #009900;">&#123;</span>
    repeatCount<span style="color: #339933;">:</span> Timeline.<span style="color: #006633;">INDEFINITE</span>
    keyFrames <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
        KeyFrame <span style="color: #009900;">&#123;</span>
            time<span style="color: #339933;">:</span> 0s
            values<span style="color: #339933;">:</span> angle <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0.0</span>
        <span style="color: #009900;">&#125;</span>,
        KeyFrame<span style="color: #009900;">&#123;</span>
            time<span style="color: #339933;">:</span> 10s
            values <span style="color: #339933;">:</span>  angle <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">360.0</span> tween Interpolator.<span style="color: #006633;">LINEAR</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// breath animation, go and back from 0.0 to 10.0 in 2 seconds</span>
var breath <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.0</span><span style="color: #339933;">;</span>
var breathAnimation <span style="color: #339933;">=</span> Timeline <span style="color: #009900;">&#123;</span>
    repeatCount<span style="color: #339933;">:</span> Timeline.<span style="color: #006633;">INDEFINITE</span>
    autoReverse<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>
    keyFrames <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
        KeyFrame <span style="color: #009900;">&#123;</span>
            time<span style="color: #339933;">:</span> 0s
            values<span style="color: #339933;">:</span> breath <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0.0</span>
        <span style="color: #009900;">&#125;</span>,
        KeyFrame<span style="color: #009900;">&#123;</span>
            time<span style="color: #339933;">:</span> 1s
            values <span style="color: #339933;">:</span>  breath <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">10.0</span> tween Interpolator.<span style="color: #006633;">LINEAR</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Creates n multi colored floating circles around a bigger circle</span>
var n <span style="color: #339933;">=</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">;</span>
var colors <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>
    <span style="color: #003399;">Color</span>.<span style="color: #006633;">BLUE</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">AQUA</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">MAGENTA</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">RED</span>,
    <span style="color: #003399;">Color</span>.<span style="color: #006633;">YELLOW</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">ORANGE</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">HOTPINK</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">LIME</span>
<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
var chosen <span style="color: #339933;">=</span> <span style="color: #003399;">Color</span>.<span style="color: #006633;">YELLOW</span><span style="color: #339933;">;</span>
var floatingCircles <span style="color: #339933;">=</span> <span style="color: #003399;">Group</span><span style="color: #009900;">&#123;</span>
    rotate<span style="color: #339933;">:</span> bind angle
    content<span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i in <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span>..<span style="color: #006633;">n</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> 
    Circle <span style="color: #009900;">&#123;</span>
        fill<span style="color: #339933;">:</span> colors<span style="color: #009900;">&#91;</span>i mod sizeof colors<span style="color: #009900;">&#93;</span>
        radius<span style="color: #339933;">:</span> <span style="color: #cc66cc;">10</span>
        centerX<span style="color: #339933;">:</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">cos</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">*</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">PI</span><span style="color: #339933;">/</span>n<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">70</span>
        centerY<span style="color: #339933;">:</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">sin</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">*</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">PI</span><span style="color: #339933;">/</span>n<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">70</span>
        onMouseClicked<span style="color: #339933;">:</span> function<span style="color: #009900;">&#40;</span> e<span style="color: #339933;">:</span> <span style="color: #003399;">MouseEvent</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #003399;">Void</span> <span style="color: #009900;">&#123;</span>
            chosen <span style="color: #339933;">=</span> colors<span style="color: #009900;">&#91;</span>i mod sizeof colors<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
var circle <span style="color: #339933;">=</span> Circle<span style="color: #009900;">&#123;</span>
    radius<span style="color: #339933;">:</span> bind <span style="color: #cc66cc;">50</span> <span style="color: #339933;">+</span> breath
    fill<span style="color: #339933;">:</span> bind chosen
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #003399;">Frame</span> <span style="color: #009900;">&#123;</span>
    width<span style="color: #339933;">:</span> <span style="color: #cc66cc;">400</span>, height<span style="color: #339933;">:</span> <span style="color: #cc66cc;">400</span>, visible<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>
    stage<span style="color: #339933;">:</span> Stage <span style="color: #009900;">&#123;</span>
        fill<span style="color: #339933;">:</span> <span style="color: #003399;">Color</span>.<span style="color: #006633;">BLACK</span>
        content<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
            DragGroup<span style="color: #009900;">&#123;</span>
                translateX<span style="color: #339933;">:</span> <span style="color: #cc66cc;">200</span>, translateY<span style="color: #339933;">:</span> <span style="color: #cc66cc;">200</span>
                content<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>circle, floatingCircles<span style="color: #009900;">&#93;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    closeAction<span style="color: #339933;">:</span> function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
        java.<span style="color: #006633;">lang</span>.<span style="color: #003399;">System</span>.<span style="color: #006633;">exit</span><span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// starts all animations</span>
angleAnimation.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
breathAnimation.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2008/08/11/javafx-draggable-node/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>JavaFX: Color picker</title>
		<link>http://silveiraneto.net/2008/02/19/javafx-color-picker/</link>
		<comments>http://silveiraneto.net/2008/02/19/javafx-color-picker/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 01:56:01 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[color picker]]></category>
		<category><![CDATA[colors]]></category>
		<category><![CDATA[draggable]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfx]]></category>
		<category><![CDATA[jfxbest]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[openjfx]]></category>
		<category><![CDATA[screencast]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[vídeo]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/2008/02/19/javafx-color-picker/</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2008/02/19/javafx-color-picker/" title="JavaFX: Color picker"></a>An simple color picker that can be also used as a gadget. import javafx.ui.*; import javafx.ui.canvas.*; var colors = [red:Color, orange:Color, yellow:Color, green:Color, cyan:Color,blue:Color, magenta:Color, gray:Color]; var chosenColor: Paint; chosenColor = black:Color; var x = 120; var y = 70; &#8230;<p class="read-more"><a href="http://silveiraneto.net/2008/02/19/javafx-color-picker/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2008/02/19/javafx-color-picker/" title="JavaFX: Color picker"></a><p>An simple color picker that can be also used as a gadget.</p>
<p><center><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/nlldqniJiDg&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/nlldqniJiDg&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></center></p>
<pre name="code" class="JAVA">
import javafx.ui.*;
import javafx.ui.canvas.*;

var colors = [red:Color, orange:Color, yellow:Color, green:Color,
     cyan:Color,blue:Color, magenta:Color, gray:Color];

var chosenColor: Paint;
chosenColor = black:Color;

var x = 120;
var y = 70;

Canvas{
    content: Group{
        transform: bind translate(x,y)
        content: [Star{
            points: sizeof colors
            rin: 30
            rout: 50
            fill: bind chosenColor
            onMouseDragged: operation(e) {
                x += e.localDragTranslation.x;
                y += e.localDragTranslation.y;
            }
        },
        foreach (i in [1..sizeof colors]) Circle {
            var: self
            transform: [rotate(i*360/sizeof colors,0,0), translate(50,0)]
            radius: 10
            fill: colors[i%sizeof colors]
            onMouseClicked: operation (e){
                chosenColor = self.fill;
            }
        }]
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2008/02/19/javafx-color-picker/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Draggable and Growable Ball in JavaFX</title>
		<link>http://silveiraneto.net/2008/02/16/draggable-and-growable-ball-in-javafx/</link>
		<comments>http://silveiraneto.net/2008/02/16/draggable-and-growable-ball-in-javafx/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 00:41:52 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[ball]]></category>
		<category><![CDATA[código]]></category>
		<category><![CDATA[draggable]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[growable]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfx]]></category>
		<category><![CDATA[jfxbest]]></category>
		<category><![CDATA[openjfx]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[red ball]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[vídeo]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/2008/02/16/draggable-and-growable-ball-in-javafx/</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2008/02/16/draggable-and-growable-ball-in-javafx/" title="Draggable and Growable Ball in JavaFX"></a>Two simple JavaFX code handling onMouseDragged event. import javafx.ui.*; import javafx.ui.canvas.*; Canvas { content: Circle { var x = 50 var y = 50 transform: bind translate(x, y) radius: 30 fill: red onMouseDragged: operation(e) { x += e.localDragTranslation.x; y += &#8230;<p class="read-more"><a href="http://silveiraneto.net/2008/02/16/draggable-and-growable-ball-in-javafx/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2008/02/16/draggable-and-growable-ball-in-javafx/" title="Draggable and Growable Ball in JavaFX"></a><p>Two simple JavaFX code handling onMouseDragged event.</p>
<p><center><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/M6G_N80UvZg&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/M6G_N80UvZg&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></center></p>
<pre name="code" class="JAVA">
import javafx.ui.*;
import javafx.ui.canvas.*;

Canvas {
    content: Circle {
        var x = 50
        var y = 50
        transform: bind translate(x, y)
        radius: 30
        fill: red
        onMouseDragged: operation(e) {
                x += e.localDragTranslation.x;
                y += e.localDragTranslation.y;

        }
    }
}
</pre>
<p><center><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/XvMGQomAcnc&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/XvMGQomAcnc&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></center></p>
<pre name="code" class="JAVA">
import javafx.ui.*;
import javafx.ui.canvas.*;

Canvas {
    content: Circle {
        var x = 50
        var y = 50
        var radius = 30
        transform: bind translate(x, y)
        radius: bind radius
        fill: red
        onMouseDragged: operation(e) {
            if (e.button == 1){
                x += e.localDragTranslation.x;
                y += e.localDragTranslation.y;
            }
            if (e.button == 3) {
                radius += e.localDragTranslation.x;
            }
        }
    }
}
</pre>
<p><center><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/VOdjY8lR51Y&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/VOdjY8lR51Y&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></center></p>
<pre name="code" class="JAVA">
import javafx.ui.*;
import javafx.ui.canvas.*;

Canvas {
    content: [
    Rect {x: 50, y: 50, width: 50, height: 50, fill: orange },
    Circle {
        var x = 50
        var y = 50
        var radius = 30
        var color = red:Color
        transform: bind translate(x, y)
        radius: bind radius
        fill: bind color
        onMouseDragged: operation(e) {
            if (e.button == 1){
                x += e.localDragTranslation.x;
                y += e.localDragTranslation.y;
            }
            if (e.button == 3) {
                radius += e.localDragTranslation.x;
            }
        }
        onMousePressed: operation(e){
            color = Color {blue: 0.0, green: 0.0, red: 1.0, opacity: 0.5};
        }
        onMouseReleased: operation(e){
            color = red:Color;
        }
    }]
}
</pre>
<p>You can test this examples with thhe <a href="http://download.java.net/general/openjfx/demos/javafxpad.jnlp">JavaFX Pad</a> or using Netbeans with the <a href="http://javafx.netbeans.org/">JavaFX Plugin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2008/02/16/draggable-and-growable-ball-in-javafx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

