<?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; ballon</title>
	<atom:link href="http://silveiraneto.net/tag/ballon/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, comic balloon</title>
		<link>http://silveiraneto.net/2008/09/07/javafx-comic-balloon/</link>
		<comments>http://silveiraneto.net/2008/09/07/javafx-comic-balloon/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 04:31:12 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[ballon]]></category>
		<category><![CDATA[comic]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[vídeo]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=1175</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2008/09/07/javafx-comic-balloon/" title="JavaFX, comic balloon"></a>A example of how flexible can be extending your own Custom Node. In this example I&#8217;m creating a comic ballon that can be simple created by: Ballon { text: "I can has fx?" } That can also be incremented to &#8230;<p class="read-more"><a href="http://silveiraneto.net/2008/09/07/javafx-comic-balloon/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2008/09/07/javafx-comic-balloon/" title="JavaFX, comic balloon"></a><p>A example of how flexible can be extending your own <a href="http://javafx.com/releases/preview1/docs/api/javafx.scene/javafx.scene.CustomNode.html">Custom Node</a>. In this example I&#8217;m creating a comic ballon that can be simple created by:</p>
<blockquote>
<pre>Ballon {
   text: "I can has fx?"
}</pre>
</blockquote>
<p>That can also be incremented to work like this:</p>
<p style="text-align: center;"><span style="text-align:center; display: block;"><a href="http://silveiraneto.net/2008/09/07/javafx-comic-balloon/"><img src="http://img.youtube.com/vi/LexJbO1-ti4/2.jpg" alt="" /></a></span></p>
<p>Here a simpler implementation of a balloon, without the dragging behavior but that can be used for creating comics.</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.scene.CustomNode</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.scene.geometry.Ellipse</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.geometry.Polygon</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.geometry.ShapeSubtract</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.Font</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.text.Text</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.FontStyle</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: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Balloon <span style="color: #000000; font-weight: bold;">extends</span> CustomNode <span style="color: #009900;">&#123;</span>  
&nbsp;
    <span style="color: #666666; font-style: italic;">/* (cx,cy) center of the balloon */</span>
    <span style="color: #000000; font-weight: bold;">public</span> attribute cx<span style="color: #339933;">:</span> <span style="color: #003399;">Number</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100</span> on replace <span style="color: #009900;">&#123;</span>
        distance <span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">sqrt</span><span style="color: #009900;">&#40;</span>toX <span style="color: #339933;">*</span> toX <span style="color: #339933;">+</span> toY <span style="color: #339933;">*</span> toY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> attribute cy<span style="color: #339933;">:</span> <span style="color: #003399;">Number</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100</span> on replace <span style="color: #009900;">&#123;</span>
        distance <span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">sqrt</span><span style="color: #009900;">&#40;</span>toX <span style="color: #339933;">*</span> toX <span style="color: #339933;">+</span> toY <span style="color: #339933;">*</span> toY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* (toX, toY) point where balloon points at */</span>
    <span style="color: #000000; font-weight: bold;">public</span> attribute toX<span style="color: #339933;">:</span> <span style="color: #003399;">Number</span> <span style="color: #339933;">=</span> cx on replace <span style="color: #009900;">&#123;</span>
        distance <span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">sqrt</span><span style="color: #009900;">&#40;</span>toX <span style="color: #339933;">*</span> toX <span style="color: #339933;">+</span> toY <span style="color: #339933;">*</span> toY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> attribute toY<span style="color: #339933;">:</span> <span style="color: #003399;">Number</span> <span style="color: #339933;">=</span> cy on replace <span style="color: #009900;">&#123;</span>
        distance <span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">sqrt</span><span style="color: #009900;">&#40;</span>toX <span style="color: #339933;">*</span> toX <span style="color: #339933;">+</span> toY <span style="color: #339933;">*</span> toY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* what is writted in the balloon */</span>
    <span style="color: #000000; font-weight: bold;">public</span> attribute text<span style="color: #339933;">:</span> <span style="color: #003399;">String</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;balloon&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* font for the text */</span>
    <span style="color: #000000; font-weight: bold;">public</span> attribute font<span style="color: #339933;">:</span> <span style="color: #003399;">Font</span> <span style="color: #339933;">=</span> <span style="color: #003399;">Font</span> <span style="color: #009900;">&#123;</span>
        size<span style="color: #339933;">:</span> <span style="color: #cc66cc;">24</span>
        style<span style="color: #339933;">:</span> FontStyle.<span style="color: #006633;">PLAIN</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* Distance between (cx,cy) and (toX, toY) */</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute distance<span style="color: #339933;">:</span> <span style="color: #003399;">Number</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* Text inside the balloon */</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute label <span style="color: #339933;">=</span> Text <span style="color: #009900;">&#123;</span>
        font<span style="color: #339933;">:</span> bind font
        content<span style="color: #339933;">:</span> bind text
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* place the label correctly based on text */</span>
    init <span style="color: #009900;">&#123;</span>
        label.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>label .<span style="color: #006633;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
        label.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> label.<span style="color: #006633;">font</span>.<span style="color: #006633;">size</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/* ballon body */</span>
    <span style="color: #000000; font-weight: bold;">private</span> attribute body <span style="color: #339933;">=</span> ShapeSubtract<span style="color: #009900;">&#123;</span>
        fill<span style="color: #339933;">:</span> <span style="color: #003399;">Color</span>.<span style="color: #006633;">WHITE</span>
        stroke<span style="color: #339933;">:</span> <span style="color: #003399;">Color</span>.<span style="color: #006633;">BLACK</span>
        blocksMouse<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">true</span>
        a<span style="color: #339933;">:</span>  bind <span style="color: #009900;">&#91;</span>
            Ellipse <span style="color: #009900;">&#123;</span>
                radiusX<span style="color: #339933;">:</span> bind label.<span style="color: #006633;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">20</span>
                radiusY<span style="color: #339933;">:</span> bind font.<span style="color: #006633;">size</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">2</span>
            <span style="color: #009900;">&#125;</span>,
            <span style="color: #003399;">Polygon</span> <span style="color: #009900;">&#123;</span>
                points <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
                    <span style="color: #cc66cc;">10</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">-</span> toY <span style="color: #339933;">/</span> distance<span style="color: #009900;">&#41;</span>,
                    <span style="color: #cc66cc;">10</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>toX <span style="color: #339933;">/</span> distance<span style="color: #009900;">&#41;</span>,
                    <span style="color: #cc66cc;">10</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>toY <span style="color: #339933;">/</span> distance<span style="color: #009900;">&#41;</span>,
                    <span style="color: #cc66cc;">10</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">-</span> toX <span style="color: #339933;">/</span> distance<span style="color: #009900;">&#41;</span>,
                    toX,
                    toY
                <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;
    <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>
            cursor<span style="color: #339933;">:</span> <span style="color: #003399;">Cursor</span>.<span style="color: #006633;">HAND</span>
            content<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span> body, label<span style="color: #009900;">&#93;</span>
            translateX<span style="color: #339933;">:</span> bind cx
            translateY<span style="color: #339933;">:</span> bind cy
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2008/09/07/javafx-comic-balloon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

