<?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>JavaFX News, Demos and Insight // FX Experience &#187; Layout</title>
	<atom:link href="http://fxexperience.com/category/layout/feed/" rel="self" type="application/rss+xml" />
	<link>http://fxexperience.com</link>
	<description>Sharing the Experience of JavaFX</description>
	<lastBuildDate>Mon, 21 May 2012 03:34:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Introducing Scenic View</title>
		<link>http://fxexperience.com/2012/05/introducing-scenic-view/</link>
		<comments>http://fxexperience.com/2012/05/introducing-scenic-view/#comments</comments>
		<pubDate>Mon, 07 May 2012 00:11:50 +0000</pubDate>
		<dc:creator>Jonathan Giles</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[UI Design]]></category>

		<guid isPermaLink="false">http://fxexperience.com/?p=1956</guid>
		<description><![CDATA[Developing user interfaces is tricky, regardless of whether you&#8217;re just trying to understand the high level scenegraph layout, or whether you&#8217;re pushing pixels for a finely tuned user interface. I understand and feel for people in this situation. UI developers come up with all kinds of tricks, for example, temporarily introducing a bold one pixel [...]]]></description>
			<content:encoded><![CDATA[<p>Developing user interfaces is tricky, regardless of whether you&#8217;re just trying to understand the high level scenegraph layout, or whether you&#8217;re pushing pixels for a finely tuned user interface. I understand and feel for people in this situation. UI developers come up with all kinds of tricks, for example, temporarily introducing a bold one pixel border of varying colours around components to better understand the user interface. I certainly know I have done that countless times in the past when building user interfaces, and frankly, it is painful and massively time consuming.</p>
<p>Inside the JavaFX team, since times of yore (that is, since at least JavaFX 1.3, but perhaps earlier &#8211; my memory fails me here), we&#8217;ve had this remarkable little tool that was called Scenic View. It somehow just burst into existence, through the brilliance of <a href="http://amyfowlersblog.wordpress.com/">Amy Fowler</a>, whom many should know as the layout guru for both Swing and JavaFX. Scenic View is a tool that can be called to browse a live view of the application scenegraph. Here&#8217;s a screenshot:</p>
<p><img class="aligncenter size-full wp-image-1958" title="sv1" src="http://fxexperience.com/wp-content/uploads/2012/05/sv11.png" alt="" width="668" height="593" /><span id="more-1956"></span></p>
<p>The nice thing about Scenic View is that it can also display overlays in your user interface to indicate three things: the baselineOffset, the boundsInParent, and the layoutBounds. These let you very easily see why your user interface is the way it is. I&#8217;ve attached another screenshot below, which shows this. The third rectangle in has been selected in ScenicView, and as such has a yellow filled rectangle to indicate its boundsInParent, and a green dashed (and unfilled) rectangle to indicate the layoutBounds. The interesting thing to note is that despite the rectangle having been rotated, the layoutBounds still reflect the unrotated rectangle, and that this is what the layout containers use to lay out nodes. In other words, the rectangles on either side of the rotated rectangle make no allowance for the rotation (although there are ways to force this to happen if that is what you want &#8211; listen to Amy&#8217;s talk (linked below) to learn more).</p>
<p><img class="aligncenter size-full wp-image-1960" title="sv2" src="http://fxexperience.com/wp-content/uploads/2012/05/sv2.png" alt="" width="545" height="451" /></p>
<p>Amy presented her <a href="http://www.parleys.com/#st=5&amp;id=2734&amp;sl=0">Introduction to JavaFX layout</a> talk at JavaOne San Francisco in October 2011, and I&#8217;ve gone on to re-present it at JavaOne conferences in Japan and India. What we covered in these talks was a whole bunch of layout fundamentals, and then we worked through how to use these fundamentals to build a JavaFX user interface. The worked example was on building aspects of the Scenic View application, and then we used the Scenic View application to demonstrate some of the layout concepts we had spoken about previously.</p>
<p>The Scenic View application shown above only differs visually from what Amy presented at JavaOne (which you can see in the link above). This is all I&#8217;ve done &#8211; the rest is all from Amy. What you can see in the image above is standard JavaFX, styled with a bit of custom CSS (borrowed heavily from Scene Builder). There are still a few visual quirks I&#8217;d like to improve, but I&#8217;ve been wanting to get this released for a very, very long time, so I&#8217;ll do that first, and then we can talk about improvements.</p>
<p>So, today, I am finally able to put up a <a href="http://dl.dropbox.com/u/6320469/ScenicView.jar">jar file of the ScenicView application</a>. Drop this into your project, and simply fire up Scenic View by calling ScenicView.show(scene) with the scene of your application. There is actually a secret shortcut that will automatically start up Scenic View from your running application, but that won&#8217;t stay around forever so I won&#8217;t publicise it (although it is in our open source code, so maybe you can find it)&#8230;.</p>
<p>Please, leave comments, requests for functionality, and offers to add said functionality in the comments section below. I look forward to your feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://fxexperience.com/2012/05/introducing-scenic-view/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Customized Segmented ToolBar Buttons</title>
		<link>http://fxexperience.com/2012/02/customized-segmented-toolbar-buttons/</link>
		<comments>http://fxexperience.com/2012/02/customized-segmented-toolbar-buttons/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 19:17:09 +0000</pubDate>
		<dc:creator>Richard Bair</dc:creator>
				<category><![CDATA[Controls]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[FXML]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[Tips n' Tricks]]></category>
		<category><![CDATA[UI Design]]></category>

		<guid isPermaLink="false">http://fxexperience.com/?p=1681</guid>
		<description><![CDATA[One of Jasper&#8217;s favorite websites is called Dribbble, which is a place for designers to post whatever work they&#8217;re currently working on for others to view and be inspired from. I got hooked on Dribbble last Thursday and have been looking at a bunch of the mockups and itching to try implementing some of them [...]]]></description>
			<content:encoded><![CDATA[<p>One of Jasper&#8217;s favorite websites is called <a href="http://dribbble.com">Dribbble</a>, which is a place for designers to post whatever work they&#8217;re currently working on for others to view and be inspired from. I got hooked on Dribbble last Thursday and have been looking at a bunch of the mockups and itching to try implementing some of them in JavaFX. Here is my first attempt.</p>
<p><a href="http://dribbble.com/shots/412425-Class-Attendance?list=popular&#038;offset=3"><img src="http://fxexperience.com/wp-content/uploads/2012/02/SegmentedButtonBar-Designer.png" alt="" title="SegmentedButtonBar Designer" width="800" class="aligncenter size-full wp-image-1691" /></a></p>
<p>One of the use cases we used for our CSS support and our ToolBar API was that we wanted to support a style of toolbar button which (at least for me) was popularized on the Mac, which is referred to by Cocoa as a &#8220;segmented&#8221; button. This is essentially nothing more than an HBox of buttons that has been styled such that the first button has rounded left edges, the center buttons are squared up, and the last button has rounded right edges. In the image above by <a href="http://dribbble.com/bady"/>Bady</a>, you can see the segmented button bar in the toolbar area of the application.<br />
<span id="more-1681"></span><br />
So to begin with, here is the Java code that goes into producing this app. This one is going to only have a toolbar, segmented button bar, and then the body area will just be the blue color you see in the above design. I actually will list two different examples here which both produce the same view and which both use the same CSS file. The first is just plain Java, while the second uses FXML to define the UI and a Java file simply loads the UI and configures the stage.</p>
<p><b>SegmentedButtonBarApp &#8211; Just Java</b></p>
<pre class="brush: java; title: ; notranslate">
public class SegmentedButtonBarApp extends Application {
    @Override public void start(Stage stage) throws Exception {
        BorderPane root = new BorderPane();
        root.setId(&quot;background&quot;);

        ToolBar toolBar = new ToolBar();
        root.setTop(toolBar);

        Region spacer = new Region();
        spacer.getStyleClass().setAll(&quot;spacer&quot;);

        HBox buttonBar = new HBox();
        buttonBar.getStyleClass().setAll(&quot;segmented-button-bar&quot;);
        Button sampleButton = new Button(&quot;Tasks&quot;);
        sampleButton.getStyleClass().addAll(&quot;first&quot;);
        Button sampleButton2 = new Button(&quot;Administrator&quot;);
        Button sampleButton3 = new Button(&quot;Search&quot;);
        Button sampleButton4 = new Button(&quot;Line&quot;);
        Button sampleButton5 = new Button(&quot;Process&quot;);
        sampleButton5.getStyleClass().addAll(&quot;last&quot;, &quot;capsule&quot;);
        buttonBar.getChildren().addAll(sampleButton, sampleButton2, sampleButton3, sampleButton4, sampleButton5);
        toolBar.getItems().addAll(spacer, buttonBar);

        Scene scene = new Scene(root, 800, 600);
        scene.getStylesheets().add(getClass().getResource(&quot;segmented.css&quot;).toExternalForm());
        stage.setScene(scene);
        stage.setTitle(&quot;Segmented Button Bar&quot;);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
</pre>
<p><b>SegmentedButtonBarFXMLApp.java and SegmentedButtonBar.fxml &#8211; Java and FXML</b></p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;?import java.lang.*?&gt;
&lt;?import javafx.scene.control.*?&gt;
&lt;?import javafx.scene.layout.*?&gt;

&lt;BorderPane id=&quot;background&quot; prefWidth=&quot;800.0&quot; prefHeight=&quot;600.0&quot; xmlns:fx=&quot;http://javafx.com/fxml&quot;&gt;
    &lt;top&gt;
        &lt;ToolBar&gt;
            &lt;items&gt;
                &lt;Region styleClass=&quot;spacer&quot; /&gt;
                &lt;HBox styleClass=&quot;segmented-button-bar&quot;&gt;
                    &lt;Button text=&quot;Tasks&quot; styleClass=&quot;first&quot; /&gt;
                    &lt;Button text=&quot;Administrator&quot; /&gt;
                    &lt;Button text=&quot;Search&quot; /&gt;
                    &lt;Button text=&quot;Line&quot; /&gt;
                    &lt;Button text=&quot;Process&quot; styleClass=&quot;last&quot; /&gt;
                &lt;/HBox&gt;
            &lt;/items&gt;
        &lt;/ToolBar&gt;
    &lt;/top&gt;
&lt;/BorderPane&gt;
</pre>
<pre class="brush: java; title: ; notranslate">
public class SegmentedButtonBarFXMLApp extends Application{
    @Override public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource(&quot;SegmentedButtonBar.fxml&quot;));
        Scene scene = new Scene(root);
        scene.getStylesheets().add(getClass().getResource(&quot;segmented.css&quot;).toExternalForm());
        stage.setScene(scene);
        stage.setTitle(&quot;Segmented Button Bar From FXML&quot;);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
</pre>
<p>Both of these approach yield the same approach. I think the FXML file in this case is easier to visualize than reading the raw Java code, but either approach is valid. In both approaches you will notice that I have not done any visual styling whatsoever in the code or FXML, it has all been abstracted away to the css file. Here is what the application looks like without any CSS being applied.</p>
<p><a href="http://fxexperience.com/wp-content/uploads/2012/02/Unstyled-SegmentedButtonBar.png"><img src="http://fxexperience.com/wp-content/uploads/2012/02/Unstyled-SegmentedButtonBar.png" alt="" title="Unstyled SegmentedButtonBar" width="754" height="616" class="aligncenter size-full wp-image-1682" /></a></p>
<p>So now lets apply one section of the CSS file at a time, and see how it modifies the look of the application.</p>
<h3>The CSS</h3>
<p>I started off by defining the following rule in CSS:</p>
<pre class="brush: css; title: ; notranslate">
#background {
    -light-black: rgb(74, 75, 78);
    -dark-highlight: rgb(87, 89, 92);
    -dark-black: rgb(39, 40, 40);
    -darkest-black: rgb(5, 5, 5);
    -mid-gray: rgb(216, 222, 227);
    -fx-background-color: -mid-gray;
}
</pre>
<p>There are two things going on in this code. First, you will note that it selects only the node(s) with the id of &#8220;background&#8221;. The node in our scene graph with this id is the BorderPane which forms the root of the scene graph. The first chunk of the CSS file defines the color palette. In JavaFX CSS you can create arbitrary &#8220;variables&#8221; in your CSS by simply defining a declaration, such as <code>-dark-black: rub(39, 40, 40);</code>. Thereafter, you can refer to these named colors.</p>
<div id="attachment_1684" class="wp-caption aligncenter" style="width: 210px"><a href="http://fxexperience.com/wp-content/uploads/2012/02/SegmentedButtonBar-Palette.png"><img src="http://fxexperience.com/wp-content/uploads/2012/02/SegmentedButtonBar-Palette.png" alt="" title="SegmentedButtonBar Palette" width="200" height="40" class="size-full wp-image-1684" /></a><p class="wp-caption-text">SegmentedButtonBar Palette</p></div>
<p>After doing nothing other than defining the color palette and the background, our app now looks like this:</p>
<p><a href="http://fxexperience.com/wp-content/uploads/2012/02/Styled-Background.png"><img src="http://fxexperience.com/wp-content/uploads/2012/02/Styled-Background.png" alt="" title="Styled Background" width="754" height="616" class="aligncenter size-full wp-image-1686" /></a></p>
<p>The background now has this mid-gray color, while the rest of the app looks unchanged. Now, lets style the ToolBar.</p>
<pre class="brush: css; title: ; notranslate">
.tool-bar {
    -fx-base: -dark-black;
    -fx-font-size: 12pt;
    -fx-background-color:
        linear-gradient(to bottom, derive(-fx-base,-30%), derive(-fx-base,-60%)),
        linear-gradient(to bottom, -light-black 2%, -dark-black 98%);
    -fx-background-insets: 0, 0 0 1 0;
    -fx-padding: .9em 0.416667em .9em 0.416667em;
    -fx-effect: dropshadow(two-pass-box,black,5,.2,0,0);
}
</pre>
<p>Here, I am selecting all toolbars in my app to be styled like this. I could have given my tool bar a special style class or ID so that I only targeted it, but in this case this is OK, since I am not using any other tool bars in my app, and if I were, I could style them explicitly by style class or ID if I wanted to. I am telling the toolbar to use the base color of -dark-black. I think the only reason for doing so is so that those automatically derived colors that I&#8217;m not about to override (of which I think only the text fill is ultimately going to be affected) will be styled correctly by default for being on a dark background. I&#8217;ve tweaked the font size to be a bit smaller (on mac it defaults to 13pt).</p>
<p>I&#8217;ve given the toolbar a new background gradient. It simply goes from top-to-bottom. I actually copied this out of caspian.css and then modified the main gradient (the second one in the list) to go from our -light-black palette color to our -dark-black gradient color. I tweaked the insets so that the border (the first gradient in the list) isn&#8217;t drawn on the bottom of the toolbar. I also tweaked the padding so that it would come out pretty close to the designer&#8217;s intent. Finally, I added a drop shadow.</p>
<p><a href="http://fxexperience.com/wp-content/uploads/2012/02/Styled-ToolBar.png"><img src="http://fxexperience.com/wp-content/uploads/2012/02/Styled-ToolBar.png" alt="" title="Styled ToolBar" width="640" height="145" class="aligncenter size-full wp-image-1687" /></a></p>
<p>Now that we&#8217;ve styled the tool bar, it is time to style the segmented buttons (that is, after all, what this post is supposed to be about!). Actually styling the segmented buttons is really pretty easy.</p>
<pre class="brush: css; title: ; notranslate">
.segmented-button-bar .button {
    -fx-background-color:
        -darkest-black,
        -dark-highlight,
        linear-gradient(to bottom, -light-black 2%, -dark-black 98%);
    -fx-background-insets: 0, 1 1 1 0, 2 1 1 1;
    -fx-background-radius: 0;
    -fx-padding: 0.4em 1.833333em 0.4em 1.833333em;
}

.segmented-button-bar .button.first {
    -fx-background-insets: 0, 1, 2 1 1 1;
    -fx-background-radius: 3 0 0 3, 2 0 0 2, 2 0 0 2;
}

.segmented-button-bar .button.last {
    -fx-background-insets: 0, 1 1 1 0, 2 1 1 1;
    -fx-background-radius: 0 3 3 0, 0 2 2 0, 0 2 2 0;
}

.segmented-button-bar .button:pressed {
    -fx-background-color:
        -darkest-black,
        rgb(55, 57, 58),
        linear-gradient(to top, -light-black 2%, -dark-black 98%);
}
</pre>
<p>The segmented buttons are styled such that the first and last are half-rounded, and the middle buttons are squared up. With web CSS you have the &#8220;first-child&#8221; and &#8220;last-child&#8221; pseudo-classes. However these are not implemented in JavaFX, so instead I added the &#8220;first&#8221; and &#8220;last&#8221; style classes to the first and last buttons, respectively. This allows me to use a nice CSS rule to target them separately from any other random button added to the segmented button bar.</p>
<p>Oh, and my &#8220;segmented button bar&#8221; isn&#8217;t a control &#8212; it is just an HBox with some special CSS style. I gave the hbox the style class &#8220;segmented-button-bar&#8221;, and then here from CSS I will target all buttons that are within a segmented-button-bar, and style them specially.</p>
<p>The button is drawn using 3 overlapping background fills. The first is the dark outline, the second is the &#8220;highlight&#8221; &#8212; a lighter line draw to give the bezel look, and then the gradient that fills the rest of the body. The only trick with these is to correctly specify the insets and the corner radius&#8217; so everything ends up looking right. Look closely at the following zoomed-in screenshot of the design:</p>
<p><a href="http://fxexperience.com/wp-content/uploads/2012/02/Search-Button-Zoomed-In.png"><img src="http://fxexperience.com/wp-content/uploads/2012/02/Search-Button-Zoomed-In.png" alt="" title="Search Button Zoomed In" width="810" height="264" class="aligncenter size-full wp-image-1688" /></a></p>
<p>You will notice that there is, on the left of this button, a black line and a highlight line. So does the black line belong to the button to the left of the &#8220;Search&#8221; button? Who draws it? In my case, I decided that the highlight line on the left would be drawn by this button, and the dark line on the right would also be drawn by this button. Thus you can butt multiple buttons against each other and they appear to &#8220;share&#8221; a border. Notice that the middle button draws the black lines on the top and bottom. So basically what I did was draw the black background, then draw a highlight background overtop of it adjusted such that it drew over most of the black background, just leaving 1 px on the top and bottom showing through. Then I drew the main fill adjusted so that the highlight was obscured except for 1 px on the top and left.</p>
<p>The first and last buttons were likewise tweaked to get the right look. The only additional thing done there was to make sure that the corner radius for the top-left and bottom-left edges (for the first button) were rounded and the top-right and bottom-right were squared. The same idea for the last button.</p>
<p>And that&#8217;s it. A SegmentedButtonBar where you can drop in buttons and they will be styled to match the colors, gradients, and so forth that the designer intended. And done by me: somebody who, unlike Jasper, isn&#8217;t very good at making a pretty UI <img src='http://fxexperience.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Oh, you may be wondering about that &#8220;spacer&#8221; region. I just gave it a simple style to push over the button bar a little ways.</p>
<pre class="brush: css; title: ; notranslate">
.tool-bar .spacer {
    -fx-padding: 0 5.417em 0 0;
}
</pre>
<p>And finally, our app looks pretty good!</p>
<p><a href="http://fxexperience.com/wp-content/uploads/2012/02/SegmentedButtonBar-App-Final2.png"><img src="http://fxexperience.com/wp-content/uploads/2012/02/SegmentedButtonBar-App-Final2.png" alt="" title="SegmentedButtonBar-App-Final2" width="754" height="616" class="aligncenter size-full wp-image-1701" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://fxexperience.com/2012/02/customized-segmented-toolbar-buttons/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>JavaFX2.0 Layout: A Class Tour, by Amy Fowler</title>
		<link>http://fxexperience.com/2011/06/javafx2-0-layout-a-class-tour-by-amy-fowler/</link>
		<comments>http://fxexperience.com/2011/06/javafx2-0-layout-a-class-tour-by-amy-fowler/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 00:33:48 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Layout]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://fxexperience.com/?p=1206</guid>
		<description><![CDATA[Great post on layout by Amy Fowler, recommended reading for anyone interested in JavaFX 2.0. JavaFX2.0 Beta is out. We’ve taken advantage of the language shift to extensively remodel the layout APIs based on a year’s worth of tire-kicking. This article (the first in a series) will introduce you to the basics. &#8230;.More]]></description>
			<content:encoded><![CDATA[<p>Great post on layout by Amy Fowler, recommended reading for anyone interested in JavaFX 2.0.</p>
<blockquote><p>JavaFX2.0 Beta is out.  We’ve taken advantage of the language shift to extensively remodel the layout APIs based on a year’s worth of tire-kicking. This article (the first in a series) will introduce you to the basics. &#8230;.<a href="http://amyfowlersblog.wordpress.com/2011/06/02/javafx2-0-layout-a-class-tour/">More</a></p></blockquote>
<p><a href="http://amyfowlersblog.wordpress.com/2011/06/02/javafx2-0-layout-a-class-tour/"><img alt="" src="http://amyfowlersblog.files.wordpress.com/2011/06/javafx2-0layoutclasses.png?w=640&#038;h=354" class="aligncenter" width="640" height="354" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://fxexperience.com/2011/06/javafx2-0-layout-a-class-tour-by-amy-fowler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaFX 1.3 Layout</title>
		<link>http://fxexperience.com/2010/05/javafx-1-3-layout/</link>
		<comments>http://fxexperience.com/2010/05/javafx-1-3-layout/#comments</comments>
		<pubDate>Mon, 31 May 2010 00:05:01 +0000</pubDate>
		<dc:creator>Jonathan Giles</dc:creator>
				<category><![CDATA[Layout]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://fxexperience.com/?p=838</guid>
		<description><![CDATA[Building decent-sized applications requires layouts (unless you like pain), and the funny thing about layouts is that they&#8217;re tough&#8230;..real tough&#8230;&#8230;until you bother to actually understand them. The second funny thing about layouts is that once you do understand them they&#8217;re simple and powerful. An added bonus is that your head stops hurting and your curse-words [...]]]></description>
			<content:encoded><![CDATA[<p>Building decent-sized applications requires layouts (unless you like pain), and the funny thing about layouts is that they&#8217;re tough&#8230;..real tough&#8230;&#8230;until you bother to actually understand them. The second funny thing about layouts is that once you do understand them they&#8217;re simple and powerful. An added bonus is that your head stops hurting and your curse-words jar becomes considerably less overflowing. Finally, your children/partner/pet/pet-rock will love you more and the world will become a happier, more smiley place. This is the power of understanding layouts.</p>
<p>So, please, if you don&#8217;t know how to use the JavaFX layout containers, go and read <a href="http://amyfowlersblog.wordpress.com/">Amy Fowler&#8217;s new blog</a>. It is starting off with a bang, covering what&#8217;s new and changed in JavaFX 1.3 &#8211; and it&#8217;s well worth your time to read it. Keep reading each post until it makes sense. If you go cross-eyed or consider giving up, you&#8217;re doing yourself an injustice. Read it again!</p>
<p>For convenience, here&#8217;s the links you&#8217;ll want to read:</p>
<ul>
<li><a title="JavaFX 1.3: Taming the Layout Beast" href="http://amyfowlersblog.wordpress.com/2010/04/30/javafx-1-3-taming-the-layout-beast/">JavaFX  1.3: Taming the  Layout Beast </a></li>
<li><a title="JavaFX 1.3: Autosizing Everywhere" href="http://amyfowlersblog.wordpress.com/2010/05/07/javafx-1-3-autosizing-everywhere/">JavaFX  1.3:  Autosizing Everywhere </a></li>
<li><a title="JavaFX 1.3: Managed Gets Promoted" href="http://amyfowlersblog.wordpress.com/2010/05/13/javafx-1-3-managed-gets-promoted/">JavaFX  1.3: Managed  Gets Promoted </a></li>
<li><a title="JavaFX 1.3: Growing, Shrinking and Filling" href="http://amyfowlersblog.wordpress.com/2010/05/26/javafx-1-3-growing-shrinking-and-filling/">JavaFX 1.3: Growing,  Shrinking and Filling<br />
</a></li>
</ul>
<p>Now, go forth and read! <img src='http://fxexperience.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://fxexperience.com/2010/05/javafx-1-3-layout/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JavaFX1.2 Layout &#8211; Amy Fowler</title>
		<link>http://fxexperience.com/2009/09/javafx1-2-layout-amy-fowler/</link>
		<comments>http://fxexperience.com/2009/09/javafx1-2-layout-amy-fowler/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 11:41:43 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Layout]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://fxexperience.com/?p=132</guid>
		<description><![CDATA[Amy Fowler the layout guru has written a excelent article on layout in JavaFX 1.2, recomended reading for anyone working with or learning JavaFX. JavaFX&#8217;s powerful scene-graph and animation engine enables gamer types to rapidly create dynamic visual scenes that are functionally expressed through binding and triggers and timelines. On the other, it&#8217;s growing controls [...]]]></description>
			<content:encoded><![CDATA[<p>Amy Fowler the layout guru has written a excelent article on layout in JavaFX 1.2, recomended reading for anyone working with or learning JavaFX.</p>
<blockquote><p>JavaFX&#8217;s powerful scene-graph and animation engine enables gamer types to rapidly create dynamic visual scenes that are functionally expressed through binding and triggers and timelines. On the other, it&#8217;s growing controls and charts libraries clearly stake out a more traditional GUI turf. As interfaces finally graduate to the 21st century, the lines between these two worlds is blurring in exciting ways. Our challenge is to evolve the FX platform to support this convergence, which speaks precisely to why layout in JavaFX is complicated enough that it requires a blog series to explain.</p></blockquote>
<h3><strong><a href="http://weblogs.java.net/blog/aim/archive/2009/09/10/javafx12-layout">-&gt; JavaFX 1.2: Layout</a></strong></h3>
<p><strong><a href="http://weblogs.java.net/blog/aim/archive/2009/09/10/javafx12-layout"><img class="alignnone" title="Bounds" src="http://weblogs.java.net/sites/default/files/layout12a.png" alt="" width="589" height="211" /></a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://fxexperience.com/2009/09/javafx1-2-layout-amy-fowler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clarke: What&#8217;s new in JavaFX 1.2</title>
		<link>http://fxexperience.com/2009/06/clarke-whats-new-in-javafx-12/</link>
		<comments>http://fxexperience.com/2009/06/clarke-whats-new-in-javafx-12/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 01:18:03 +0000</pubDate>
		<dc:creator>Richard Bair</dc:creator>
				<category><![CDATA[Charts]]></category>
		<category><![CDATA[Controls]]></category>
		<category><![CDATA[Layout]]></category>

		<guid isPermaLink="false">http://fxexperience.com/?p=17</guid>
		<description><![CDATA[There&#8217;s a great article over at InformIT by Jim Clarke about what&#8217;s new in JavaFX 1.2. Jim has been involved in JavaFX both contributing to the source and building apps since before I got involved last year. From the article: Once you start using JavaFX, I think you&#8217;ll find that the language is powerful yet [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a great article over at <a href="http://www.informit.com/articles/article.aspx?p=1352545">InformIT</a> by Jim Clarke about what&#8217;s new in JavaFX 1.2. Jim has been involved in JavaFX both contributing to the source and building apps since before I got involved last year.</p>
<p>From the article:</p>
<blockquote><p>Once you start using JavaFX, I think you&#8217;ll find that the language is powerful yet very concise. You&#8217;ll be amazed at the things you can do with very little code. I have only discussed a few of the new JavaFX 1.2 user interface features—there&#8217;s much more to the entire JavaFX platform. I hope that this overview will provide just enough enticement for you to start your own exploration.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://fxexperience.com/2009/06/clarke-whats-new-in-javafx-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

