<?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>Jasper Potts&#039;s Blog &#187; Nimbus</title>
	<atom:link href="http://www.jasperpotts.com/blog/category/all/nimbus/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasperpotts.com/blog</link>
	<description>Jasper Potts&#039;s Blog on Java and Life</description>
	<lastBuildDate>Mon, 30 Jan 2012 07:03:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Time to close the polls</title>
		<link>http://www.jasperpotts.com/blog/2009/05/time-to-close-the-polls/</link>
		<comments>http://www.jasperpotts.com/blog/2009/05/time-to-close-the-polls/#comments</comments>
		<pubDate>Tue, 12 May 2009 14:39:00 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/?p=212</guid>
		<description><![CDATA[It seemed like it was time to close the polls, I don&#8217;t think there is a clear answer across all platforms. On windows there is a clear winner for the native look and that makes sense as Windows LAF has had a huge amount of work put into it over that last 5 years plus. [...]]]></description>
			<content:encoded><![CDATA[<p>It seemed like it was time to close the polls, I don&#8217;t think there is a clear answer across all platforms. On windows there is a clear winner for the native look and that makes sense as Windows LAF has had a huge amount of work put into it over that last 5 years plus. If there was the resources to put a equal effort into the GTK LAF and a new KDE LAF then they would be clear winners to. Nimbus is a great cross platform look and feel and allows people to create good looking applications but maybe is not the simplest look and feel for people to start with as it takes a little effort to make a great looking application with it. Also it is not the best for compatibility with applications written to work with other look and feels so is a dangerous choice as a default. So I kind of feel that we could go native on Windows and people will be happy but there is no clear answer for GTK and KDE. I will pass the poll results on to the other people who have a say in the decision and see what the consensus is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2009/05/time-to-close-the-polls/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Breakdown of what should be default LAF for Java 7</title>
		<link>http://www.jasperpotts.com/blog/2009/03/breakdown-of-what-should-be-default-laf-for-java-7/</link>
		<comments>http://www.jasperpotts.com/blog/2009/03/breakdown-of-what-should-be-default-laf-for-java-7/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 11:06:38 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/?p=208</guid>
		<description><![CDATA[After watching the voting and reading the comments I have noticed two things: First is from 30 votes to 800 votes the percentages have hardly changed which means we seem to be falling on a conclusion. Native LAF has varied from 59% to 63% so nothing major and is a clear winner. The second point [...]]]></description>
			<content:encoded><![CDATA[<p>After watching the voting and reading the comments I have noticed two things: First is from 30 votes to 800 votes the percentages have hardly changed which means we seem to be falling on a conclusion. Native LAF has varied from 59% to 63% so nothing major and is a clear winner.</p>
<p>The second point is there seems to be different answers for Windows and Unix and good arguments that maybe they should not be the same so let me start a new poll with them split and see if I am right. I will split the poll into 3 categories Windows, Unix GTK and Unix KDE. I am not quite sure how we detect between GTK and KDE but sure we can find a way <img src='http://www.jasperpotts.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<p>Again If you have a strong feeling one way or another then please explain in a comment below as we would love to hear. All your votes and comments will be taken into consideration when we make the final discussion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2009/03/breakdown-of-what-should-be-default-laf-for-java-7/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>Which Look and Feel should be default in Java 7</title>
		<link>http://www.jasperpotts.com/blog/2009/03/which-look-and-feel-should-be-default-in-java-7/</link>
		<comments>http://www.jasperpotts.com/blog/2009/03/which-look-and-feel-should-be-default-in-java-7/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 14:35:02 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/?p=198</guid>
		<description><![CDATA[The other day I was discussing with colleagues if Nimbus should be the default LAF(Look and Feel) for Swing application. The current default LAF is Ocean which is a spiced up theme for Metal which has been the Swing default LAF since the beginning. It feels like with a large release like Java 7 it [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I was discussing with colleagues if Nimbus should be the default LAF(Look and Feel) for Swing application. The current default LAF is Ocean which is a spiced up theme for Metal which has been the Swing default LAF since the beginning. It feels like with a large release like Java 7 it is about time we changed the default LAF to a more sensible choice which leaves two choices Nimbus which is the new cross platform LAF and the system native LAF which will be Windows LAF on Windows and GTK LAF on Unix. Apple has already gone with the system native choice and the default LAF for Java Swing applications on Mac is Apple&#8217;s Aqua native LAF. The only reason for remaining with Ocean LAF is to maintain backwards compatibility for old Java applications which were written with static pixel based layout so will be all messed up if the size of components changes. My feeling is that sector of users should be getting pretty small now and as long as we provide a easy work around like system property file that lets a user/administrator change the default LAF back to Ocean for those few special cases then we can move forward and select a modern LAF as the default. So then it comes down to what to choose <strong>Nimbus</strong> or <strong>Native</strong>(Windows/GTK) I am torn between the two. So we decided the best idea is to ask more people, so what do you think?</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<p>If you have a strong feeling one way or another then please explain in a comment below as we would love to hear. All your votes and comments will be taken into consideration when we make the final discussion.</p>
<p><em><strong>Update</strong><br />
I have closed this poll and opened 3 new ones on the post <a href="http://www.jasperpotts.com/blog/2009/03/breakdown-of-what-should-be-default-laf-for-java-7/">Breakdown of what should be default LAF for Java 7</a>. So follow that link if you would like to vote.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2009/03/which-look-and-feel-should-be-default-in-java-7/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Nimbus: The New Face of Swing &#8211; JavaOne 2008</title>
		<link>http://www.jasperpotts.com/blog/2009/01/nimbus-the-new-face-of-swing-javaone-2008/</link>
		<comments>http://www.jasperpotts.com/blog/2009/01/nimbus-the-new-face-of-swing-javaone-2008/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 11:15:59 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/?p=130</guid>
		<description><![CDATA[I am just reviewing the submissions for JavaOne 2009 and was looking back at what we did for JavaOne 2008 and noticed Sun has posted the slides with audio from our session on Nimbus last year. So if you are interested in Nimbus and were not fortunate enough to be able to come and see us in [...]]]></description>
			<content:encoded><![CDATA[<p>I am just reviewing the submissions for <a href="http://java.sun.com/javaone/">JavaOne 2009</a> and was looking back at what we did for <a href="http://developers.sun.com/learning/javaoneonline/j1online.jsp?track=coolstuff&amp;yr=2008">JavaOne 2008</a> and noticed Sun has posted the slides with audio from our session on Nimbus last year. So if you are interested in Nimbus and were not fortunate enough to be able to come and see us in person or have listened to it already. Then it is well worth checking out as I think we made a good attempt to explain how Nimbus works and how to use it. </p>
<h4>Nimbus: The New Face of Swing TS-6096</h4>
<p><em>Presenter: Richard Bair, Sun Microsystems, Inc.; Jasper Potts, Sun Microsystems, Inc.</em></p>
<table border="0" cellpadding="0">
<tbody>
<tr>
<td>
<form action="http://developers.sun.com/learning/javaoneonline/sessions/2008/watch/TS-6096/index.html?cid=925635">
<input type="submit" value=" Watch Multimedia " /></form>
</td>
<td>
<form action="http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-6096.pdf?cid=925634">
<input type="submit" value=" View PDF " /></form>
</td>
<td>
<form action="http://developers.sun.com/learning/javaoneonline/sessions/2008/mp3/TS-6096.mp3?cid=925636">
<input type="submit" value=" MP3 " /></form>
</td>
</tr>
</tbody>
</table>
<p>Nimbus is the stunning next-generation cross-platform look-and-feel for the Java platform, perfect for skinning Swing components in existing applications and new FX applications. In this session, two Nimbus developers guide you through using Nimbus to create beautiful modern applications. They cover the basics of using Nimbus in your Swing applications and also discuss using the new Nimbus Designer visual design tool for extending Nimbus and styling custom components. Finally, they show how to brand your applications with completely custom look-and-feels extending Nimbus.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2009/01/nimbus-the-new-face-of-swing-javaone-2008/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Nimbus UIManager UIDefaults</title>
		<link>http://www.jasperpotts.com/blog/2008/08/nimbus-uimanager-uidefaults/</link>
		<comments>http://www.jasperpotts.com/blog/2008/08/nimbus-uimanager-uidefaults/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 21:09:20 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/2008/08/nimbus-uimanager-uidefaults/</guid>
		<description><![CDATA[Nimbus is completely configured by properties in the UIManager defaults table. In my last blog I showed a simple example of how to skin a single component. This gave you a sneak peek into the power of these properties. Lots of people have asked for a complete list of properties that can be set, well [...]]]></description>
			<content:encoded><![CDATA[<p>Nimbus is completely configured by properties in the UIManager defaults table. In my last blog I showed a simple example of how to skin a single component. This gave you a sneak peek into the power of these properties. Lots of people have asked for a complete list of properties that can be set, well its simple just grab <code>UIManager.getLookAndFeelDefaults()</code> and iterate over the contents of the map and print the keys and values and there you go. Well I am not that cruel so I did the work for you and will include a link to a complete table of them at the end. But before I get to that let me explain how they work.</p>
<p>Nimbus properties follow some rules and you can not only use the property keys that we have added in as default but you can create your own. Nimbus Look and Feel scans the UIDefaults table when ever you add a property with <code>UIManager.put(&lt;&lt;key&gt;&gt;,&lt;&lt;value&gt;&gt;)</code> then updates its internal state. When that new property matches the current state of the component it applies to then it will be applied to that component. Properties cascade like CSS and the most specific matching one is used.<br />
Example:</p>
<ul>
<li><code>foreground = Color.BLACK</code></li>
<li><code>Label.foreground = Color.BLUE</code></li>
<li><code>Label[Disabled].foreground = Color.GRAY</code></li>
<li><code>"SomeLabel"[Disabled].foreground = Color.WHITE</code></li>
</ul>
<p>In these examples <code>foreground</code> applies to the foreground of all regions of all components, <code>Label.foreground</code> applies to only Label components, <code>Label[Disabled].foreground</code> applies to only Label components in the Disabled state. <code>"SomeLabel"[Disabled].foreground</code> applies to all components named &#8220;SomeLabel&#8221; that are in the disabled state. Hopefully that also explains the different ways you can write a rule to match a Component. The only 2 cases that are not covered here are <code>Component.Region.foreground</code> which lets you specify a sub-region of a component and <code>ComponentA:ChildComponentB.foreground</code> which lets you specify a <code>ChildComponentB contained within ComponentA</code>. You can see many examples of these in the complete table below and then play with writing your own. For example you can use the &#8220;name&#8221; property of a component in a similar way to &#8220;class&#8221; in CSS, say naming a bunch of buttons &#8220;hotButton&#8221; and then specifying new rules for them in the defaults table. I already explained in my last blog how you can override the global defaults on a single instance bases which matches the &#8220;style&#8221; attribute with HTML CSS.</p>
<p>Colors in Nimbus are derived, which means there are a core set of colors which are constants and all the other colors are calculated from those. This means you can simply change those and the 1000s of other colors that are related and used in the painters will update to reflect the new base color. These colors are shown in the &#8220;Primary Colors&#8221; section of the table. The colors in the &#8220;Secondary Colors&#8221; section are derived from those in the &#8220;Primary Colors&#8221; section but themselves are used as the base colors for other colors. You may need to change the secondary colors to tweak the results of changing the primary ones if you are not happy with the results. You can you derived colors in your own code as well so that you colors can change when the primary colors change. This will allow you to make your application color theme-able idea for white label branding etc. The method you need is on <code>NimbusLookAndFeel</code> called <code>getDerivedColor</code> :</p>
<pre>
/**
 * Get a derived color, derived colors are shared instances and is color
 * value will change when its parent UIDefault color changes.
 *
 * @param uiDefaultParentName The parent UIDefault key
 * @param hOffset             The hue offset
 * @param sOffset             The saturation offset
 * @param bOffset             The brightness offset
 * @param aOffset             The alpha offset
 * @param uiResource          True if the derived color should be
 *                            UIResource, false if it should not be
 * @return The stored derived color
 */
public Color getDerivedColor(String uiDefaultParentName,
               float hOffset, float sOffset, float bOffset, int aOffset,
               boolean uiResource)
</pre>
<p>Hopefully the rest will make sense as you read though the table and look at all the examples. After that its just a matter of try playing with some and see what you can do. I hope you see that power in this that Richard Bair and I designed and hoped would be useful. The complete defaults properties table is way to big to include in this post so I have put it on a separate page.</p>
<ul>
<li> <a href="http://jasperpotts.com/blogfiles/nimbusdefaults/nimbus.html" title="Nimbus properties">Nimbus UIDefaults Properties List</a></li>
</ul>
<p>If you would like to see how I made this list, here is the code that creates the html.</p>
<table cellspacing="10" style="text-align: center">
<tr>
<td><a href="http://jasperpotts.com/blogfiles/nimbusdefaults/NimbusBrowser.java" onclick="javascript:urchinTracker ('/blogfiles/nimbusdefaults/NimbusBrowser.java');"><img src="http://www.jasperpotts.com/blog/wp-content/uploads/2007/11/java-icon.png" alt="Java Icon" border="0" /><br />NimbusBrowser.java</a></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2008/08/nimbus-uimanager-uidefaults/feed/</wfw:commentRss>
		<slash:comments>88</slash:comments>
		</item>
		<item>
		<title>Skinning a Slider with Nimbus</title>
		<link>http://www.jasperpotts.com/blog/2008/08/skinning-a-slider-with-nimbus/</link>
		<comments>http://www.jasperpotts.com/blog/2008/08/skinning-a-slider-with-nimbus/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 11:48:45 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/2008/08/skinning-a-slider-with-nimbus/</guid>
		<description><![CDATA[So time for a example of how to skin a Swing JSlider using the Nimbus Look and Feel and some simple painting code. So this is what we get with the standard Nimbus look slider on a dark grey background. All of the Nimbus skin comes from a set of properties in the UIManager defaults [...]]]></description>
			<content:encoded><![CDATA[<p>So time for a example of how to skin a Swing JSlider using the Nimbus Look and Feel and some simple painting code. So this is what we get with the standard Nimbus look slider on a dark grey background.</p>
<p><img src="http://www.jasperpotts.com/blog/wp-content/uploads/2008/08/slider-default.png" alt="Slider Default Look" /></p>
<p>All of the Nimbus skin comes from a set of properties in the UIManager defaults table. The keys we will be changing for this example are:
<ul>
<li>&#8220;Slider.thumbWidth&#8221;</li>
<li>&#8220;Slider.thumbHeight&#8221;</li>
<li>&#8220;Slider:SliderThumb.backgroundPainter&#8221;</li>
<li>&#8220;Slider:SliderTrack.backgroundPainter&#8221; </li>
</ul>
<p>You can customize the look for a Component either globally for all instances of the component or locally for a single component instance.  To change all sliders globally you can set these properties using UIManager.put(key,value) but in this example I will just set them locally for a single slider. To set UI defaults localy for a single component instance you need to create a UIDefaults map, insert you properties and then set it as a client property on the component:</p>
<p>
<pre>
                JSlider slider = new JSlider(0, 100, 50);
                UIDefaults sliderDefaults = new UIDefaults();
                ....
                sliderDefaults.put(&lt;&lt;key&gt;&gt;,&lt;&lt;value&gt;&gt;)
                ....
                slider.putClientProperty("Nimbus.Overrides",sliderDefaults);
                slider.putClientProperty("Nimbus.Overrides.InheritDefaults",false);
</pre>
</p>
<p>The  &#8220;Nimbus.Overrides.InheritDefaults&#8221; key states if the values in &#8220;Nimbus.Overrides&#8221; should be merged with the defaults(false) or replace them(true). So next some examples for what properties we should set to skin the slider:</p>
<p>
<pre>
                sliderDefaults.put("Slider.thumbWidth", 20);
                sliderDefaults.put("Slider.thumbHeight", 20);
                sliderDefaults.put("Slider:SliderThumb.backgroundPainter", new Painter<JComponent>() {
                    public void paint(Graphics2D g, JComponent c, int w, int h) {
                        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                        g.setStroke(new BasicStroke(2f));
                        g.setColor(Color.RED);
                        g.fillOval(1, 1, w-3, h-3);
                        g.setColor(Color.WHITE);
                        g.drawOval(1, 1, w-3, h-3);
                    }
                });
                sliderDefaults.put("Slider:SliderTrack.backgroundPainter", new Painter<JComponent>() {
                    public void paint(Graphics2D g, JComponent c, int w, int h) {
                        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                        g.setStroke(new BasicStroke(2f));
                        g.setColor(Color.GRAY);
                        g.fillRoundRect(0, 6, w-1, 8, 8, 8);
                        g.setColor(Color.WHITE);
                        g.drawRoundRect(0, 6, w-1, 8, 8, 8);
                    }
                });
</pre>
</p>
<p>The lets pop that code into a sample app and run it and see what it looks like.</p>
<p><img src='http://www.jasperpotts.com/blog/wp-content/uploads/2008/08/slider-demo.png' alt='Slider Demo' /></p>
<p>The original Nimbus slider on the bottom and the skinned one on top, both running in the same application. Here is the source so you can try it your self. Let me know if this was useful and what other examples you would like to see.</p>
<table cellspacing="10" style="text-align: center">
<tr>
<td><a href="http://jasperpotts.com/blogfiles/SliderSkinDemo.java" onclick="javascript:urchinTracker ('/blogfiles/SliderSkinDemo.java');"><img src="http://www.jasperpotts.com/blog/wp-content/uploads/2007/11/java-icon.png" alt="Java Icon" border="0" /><br />SliderSkinDemo.java</a></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2008/08/skinning-a-slider-with-nimbus/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>A very late &#8220;Nimbus is Done&#8221; blog!</title>
		<link>http://www.jasperpotts.com/blog/2008/08/a-very-late-nimbus-is-done-blog/</link>
		<comments>http://www.jasperpotts.com/blog/2008/08/a-very-late-nimbus-is-done-blog/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 10:44:28 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/2008/08/a-very-late-nimbus-is-done-blog/</guid>
		<description><![CDATA[Wow its been crazy, we have finally finished Nimbus for 6u10 and release candidate is out there Java 6u10 RC Download, have done Java One and I am now knee deep in Java FX. I have about 10 half completed blogs and just never seem to find the time to finish them. As well as being [...]]]></description>
			<content:encoded><![CDATA[<p>Wow its been crazy, we have finally finished Nimbus for 6u10 and release candidate is out there <a href="http://java.sun.com/javase/downloads/ea.jsp" title="Java 6u10 RC Download" target="_blank">Java 6u10 RC Download</a>, have done Java One and I am now knee deep in Java FX. I have about 10 half completed blogs and just never seem to find the time to finish them. As well as being mega busy with Nimbus and Java FX I have just moved back from California to the UK. Moving is always way too time consuming and expensive.</p>
<p>If you missed our talk and BOF at Java One this year here are the presentations:</p>
<p><a href="http://www.jasperpotts.com/blog/wp-content/uploads/2008/08/ps_ts-6096-nimbus.pdf" title="Java One 2008 Nimbus Talk PDF">Java One 2008 Nimbus Talk PDF</a></p>
<p><a href="http://www.jasperpotts.com/blog/wp-content/uploads/2008/08/nimbus-bof.pdf" title="Java One 2008 Nimbus BOF Presentation PDF">Java One 2008 Nimbus BOF Presentation PDF</a></p>
<p>A lot of you have been asking about the Nimbus Designer Tool that I demoed at Java One. I have been working at getting it opensourced but it is a slow bureaucratic process so I am sorry. In the mean time I thought I would try and do a couple blogs on how you can skin Nimbus your self with out the tool. It is very easy to do providing you are not worried about getting your hands dirty writing some Java 2D drawing code. You could always use images or a SVG library if you don&#8217;t fancy raw Java 2D. I would like to split the designer tool into 2 parts the first part the lets you create a Painter classes with Java 2D drawing code by drawing graphics. The second part would let you assign painters to components and generate the code to populate the UIManager defaults table. But both those parts are not hard to do your self if we help you get started so I will see what I can do.</p>
<p>So just a quick hello to say I am still alive, next to try and post a couple blogs on how to skin Nimbus.</p>
<p><img src="http://www.jasperpotts.com/blog/wp-content/uploads/2008/07/swingset.png" alt="SwingSet 3 with Nimbus" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2008/08/a-very-late-nimbus-is-done-blog/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Nimbus: Large, Small, Mini Components</title>
		<link>http://www.jasperpotts.com/blog/2007/12/nimbus-large-small-mini-components/</link>
		<comments>http://www.jasperpotts.com/blog/2007/12/nimbus-large-small-mini-components/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 18:56:23 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/2007/12/nimbus-large-small-mini-components/</guid>
		<description><![CDATA[In the original design for Nimbus there were large,small and mini versions of components. Small and mini components are very useful when you are creating tool pallets or other UI where space is very tight. Apple recently added this to their new look and feel in the latest java versions see Technical Note TN2196. We are [...]]]></description>
			<content:encoded><![CDATA[<p>In the original design for Nimbus there were large,small and mini versions of components. Small and mini components are very useful when you are creating tool pallets or other UI where space is very tight. Apple recently added this to their new look and feel in the latest java versions see <a href="http://developer.apple.com/technotes/tn2007/tn2196.html#SMALL_MINI" target="_blank" title="Technical Note TN2196">Technical Note TN2196</a>. We are using the same client property key and values as Apple to be compatible but I have also added &#8220;large&#8221; as a option. Not sure &#8220;large&#8221; is as useful as &#8220;small&#8221; or &#8220;mini&#8221; but might look good in wizards or dialogs. Check out the screenshot to see how they look. <a href="http://www.jasperpotts.com/blog/wp-content/uploads/2007/12/small-mini.png"><img src="http://www.jasperpotts.com/blog/wp-content/uploads/2007/12/small-mini-600.png" border="0" alt="Nimbus Small Mini 600" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2007/12/nimbus-large-small-mini-components/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>JavaOne 2008 Papers</title>
		<link>http://www.jasperpotts.com/blog/2007/10/javaone-2008-papers/</link>
		<comments>http://www.jasperpotts.com/blog/2007/10/javaone-2008-papers/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 22:35:37 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/2007/10/javaone-2008-papers/</guid>
		<description><![CDATA[Its already that time of year again to start writing up all your great ideas for Java One Desktop talks for next year. Its only two and a half weeks till they close for submissions so hurry up. Click here for details for paper submission. I am planning on submitting a talk on Nimbus and [...]]]></description>
			<content:encoded><![CDATA[<p>Its already that time of year again to start writing up all your great ideas for Java One Desktop talks for next year. Its only two and a half weeks till they close for submissions so hurry up. <a href="https://www28.cplan.com/cfp_prod/CFPLogin.jsp?wId=72T235">Click here for details for paper submission.</a></p>
<p>I am planning on submitting a talk on Nimbus and the new Nimbus Designer tool. Covering:</p>
<ul>
<li>Using Nimbus L&#038;F in your applications</li>
<li>Designing for cross-platform, how to design your application to look good on all platforms</li>
<li>Customizing Nimbus</li>
<li>Creating new look and feels using the designer tool based on Nimbus</li>
<li>Creating your own components with Nimbus L&#038;F themeing support</li>
<li>Designing the look for your own components using the deisgner tool</li>
</ul>
<p>Might have too much to cover in a hour, don&#8217;t want to scare you all off. Any thoughts on what topics you think are the most important/intresting in case I need to cut bits out or anything I didn&#8217;t mention here?</p>
<p><a href="http://java.sun.com/javaone/sf/"><img border="0" src='http://www.jasperpotts.com/blog/wp-content/uploads/2007/10/javaone2008.jpg' alt='JavaOne 2008' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2007/10/javaone-2008-papers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nimbus Early Access</title>
		<link>http://www.jasperpotts.com/blog/2007/10/nimbus-early-access/</link>
		<comments>http://www.jasperpotts.com/blog/2007/10/nimbus-early-access/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 02:00:37 +0000</pubDate>
		<dc:creator>Jasper Potts</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Nimbus]]></category>

		<guid isPermaLink="false">http://www.jasperpotts.com/blog/2007/10/nimbus-early-access/</guid>
		<description><![CDATA[Finally a version you can all go and play with. Nimbus is coming out as part of &#8220;Java SE 6 update N&#8221; formerly known as the &#8220;Consumer Release&#8221; and &#8220;Project Hamburg&#8221;. Well whatever it is called it contains a decent version of the new Nimbus look and feel. You can go and download it from [...]]]></description>
			<content:encoded><![CDATA[<p>Finally a version you can all go and play with. Nimbus is coming out as part of &#8220;Java SE 6 update N&#8221; formerly known as the &#8220;Consumer Release&#8221; and &#8220;Project Hamburg&#8221;. Well whatever it is called it contains a decent version of the new Nimbus look and feel. You can go and download it from <strong><a href="https://jdk6.dev.java.net/6uNea.html">Java SE 6 Update N Early Access Program</a></strong>. Its is definately not 100% finished yet, there are a few areas that we are still working on:
<ul>
<li>Tabs</li>
<li>Focus handling is missing from Spinner,Slider, Tree, Table and List</li>
<li>FileChooser has a lot of issues</li>
<li>Right to Left for international language support</li>
<li>3rd party component theming</li>
<li>Color theming</li>
<li>Lots of minor things like table gridlines or setContentAreaFilled() support on buttons</li>
<li>Exceptions are thrown if the window or some components get too small</li>
</ul>
<p>Most of these will be fixed in the next EA release or the first beta release. A few of them have been fixed in the last couple weeks, I have just been working on color theming. All colors in Nimbus are derived from a set of UIDefault colors with Hue, Saturation and Brightness offsets. This gives you reasonable control over changing the colors of the Nimbus Look and Feel.
<p align="center"><img src="http://www.jasperpotts.com/blog/wp-content/uploads/2007/10/dark-nimbus.png" width="600" alt="Dark Nimbus" /><font size="-2">Darker Themed Nimbus</font></p>
<h3>Using Nimbus</h3>
<p>There are 3 easy ways to use the Nimbus look and feel:
<ol>
<li>If you query UIManager for a list of available look and feels then Nimbus will show up in the list</li>
<li>Add <code>UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");</code> to your application before creating any Swing components</li>
<li>To specify the L&amp;F from command line, use the following when running your Java application: <code>-Dswing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel</code></li>
</ol>
<p>The reason Nimbus is in the sun.swing&#8230; package is it is not possible to add new API to the javax.swing&#8230; package in a update release. We hope that we can move Nimbus to javax.swing in Java 7 and if it turns out to be popular then we push to make it the default look and feel in 7.  Before 6 update N is final we will work out some way for you to be able to use it now and when it is potentially moved without changing any code.<br />
<h3>If you Find Bugs</h3>
<p>You can search to see if there is an existing at <a href="http://bugs.sun.com/bugdatabase/">Sun Bug Database</a> or you can view a <a href="http://bugs.sun.com/bugdatabase/search.do;jsessionid=5a3cd3da2ba582eef760ee5c4e64?process=1&amp;category=&amp;bugStatus=open&amp;subcategory=&amp;type=&amp;keyword=nimbus">List of open Nimbus Bugs</a>. You are welcome to post bugs here as comments and I will file them if they are not known bugs.<br />
<h3>Other Cool Features of Update N</h3>
<p><strong>Improved performance</strong>
<ul>
<li>The <strong>Quick Starter</strong> feature will prefetch portions of the JRE into memory, substantially decreasing the average JRE cold start-up time (the time that it takes to launch a Java application for the first time after a fresh reboot of a PC).</li>
<li><strong>Hardware acceleration support</strong>: Java SE 6 Update N introduces a fully hardware accelerated graphics pipeline based on the Microsoft Direct3D 9 API, translating into improved rendering of Swing applications which rely on translucency, gradients, arbitrary transformations, and other more advanced 2D operations.</li>
</ul>
<p><strong>Enhanced JRE installation experience</strong> 
<ul>
<li>The <strong>Deployment Toolkit</strong> takes the guess work out of determining what versions of the JRE end users have installed on their PC. It supplies Java based web	applet/application deployers with a simple interface to accomplish Java detection and installation.</li>
<li>The <strong>Kernel</strong> installation mode lets first time Java users run applets and Web Start applications without waiting for the whole JRE download. While the default Kernel installation will work with existing Java applets, application developers have the ability to select libraries that should be installed with the kernel, before the rest of the JRE is installed on the end user&#8217;s system.</li>
<li>For current users of Java SE, the <strong>JRE update mechanism</strong> has also been improved, using a patch-in-place mechanism that translates in a faster and more reliable update process (the patch in place mechanism will take  effect for end users who upgrade from this update release or later to a new update release). As an added benefit, follow-on update releases will no longer be listed as separate items in the Windows &#8220;Add or Remove Programs&#8221; dialog.</li>
<li>A <strong>new Java update download engine</strong> provides end users with the convenience of pausing and resuming the JRE download, and relies on a more reliable download mechanism.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jasperpotts.com/blog/2007/10/nimbus-early-access/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
	</channel>
</rss>

