<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>GUI in 2Dimensions</title>
	<atom:link href="http://guibuilder.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://guibuilder.wordpress.com</link>
	<description>Flexing with Swing</description>
	<lastBuildDate>Wed, 22 Dec 2010 09:23:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='guibuilder.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>GUI in 2Dimensions</title>
		<link>http://guibuilder.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://guibuilder.wordpress.com/osd.xml" title="GUI in 2Dimensions" />
	<atom:link rel='hub' href='http://guibuilder.wordpress.com/?pushpress=hub'/>
		<item>
		<title>JTable row resizing using ..JxLayer</title>
		<link>http://guibuilder.wordpress.com/2010/09/16/rowresizing-using-jxlayer/</link>
		<comments>http://guibuilder.wordpress.com/2010/09/16/rowresizing-using-jxlayer/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 17:29:51 +0000</pubDate>
		<dc:creator>Pavan Kumar</dc:creator>
				<category><![CDATA[GUI]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://guibuilder.wordpress.com/?p=108</guid>
		<description><![CDATA[A common usecase for a JTable is to  manually resize rows .  One  solution  googled was   Make JTable Resizable It works fine with a couple of drawbacks.. If the CellEditor gets activated on mouseMove(as in my application) the mouse events will be consumed by the editor component , and the table mouseListeners(for  Dragging) will Not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=guibuilder.wordpress.com&amp;blog=3100541&amp;post=108&amp;subd=guibuilder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A common usecase for a JTable is to  manually resize rows .  One  solution  googled was  <a href="http://www.jroller.com/santhosh/entry/make_jtable_resiable_better_than"> </a><a title="Make JTable Resizable" href="http://www.jroller.com/santhosh/entry/make_jtable_resiable_better_than" target="_blank">Make JTable Resizable</a><br class="none" /><br />
It works fine with a couple of drawbacks..</p>
<ul>
<li> If the CellEditor gets activated on mouseMove(as in my application) the mouse events will be consumed by the editor component , and the table mouseListeners(for  Dragging) will Not be notfied.</li>
</ul>
<ul>
<li>Working around the problem of rowSelection,when resizing ..needed the underlying table to be modified.</li>
</ul>
<p><br class="none" /><br />
This seemed a perfect usecase for <strong><a title="JXLayer" href="https://jxlayer.dev.java.net/" target="_blank">JxLayer</a></strong></p>
<ul>
<li> Get all MouseEvents from any component parented by the underlying Table.</li>
</ul>
<ul>
<li>Lock the UI on MouseMove &amp; prevent the RowSelection in the table from changing(on mousePressed).</li>
</ul>
<p>The class <strong>RowResizerUI </strong>extends LockableUI(from JxLayer) &amp;   provides  row resizing for the underlying table.<br />
<br class="none" /><br />
<a href="http://swing-demos.googlecode.com/files/RowResizing.jnlp"><img class="alignnone size-full wp-image-4" title="webstart.jpeg" src="http://guibuilder.files.wordpress.com/2008/03/webstart.jpeg" alt="" width="77" height="20" /></a></p>
<p><a href="http://swing-demos.googlecode.com/files/RowResizerDemo.jar">Link to Src</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/guibuilder.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/guibuilder.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/guibuilder.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/guibuilder.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/guibuilder.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/guibuilder.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/guibuilder.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/guibuilder.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/guibuilder.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/guibuilder.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/guibuilder.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/guibuilder.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/guibuilder.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/guibuilder.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=guibuilder.wordpress.com&amp;blog=3100541&amp;post=108&amp;subd=guibuilder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://guibuilder.wordpress.com/2010/09/16/rowresizing-using-jxlayer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f14d218de35e10323b27d5ed3582e45f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guibuilder</media:title>
		</media:content>

		<media:content url="http://guibuilder.files.wordpress.com/2008/03/webstart.jpeg" medium="image">
			<media:title type="html">webstart.jpeg</media:title>
		</media:content>
	</item>
		<item>
		<title>Java Swing Application &#8216;Always on Top&#8217;</title>
		<link>http://guibuilder.wordpress.com/2009/10/14/java-swing-application-always-on-top/</link>
		<comments>http://guibuilder.wordpress.com/2009/10/14/java-swing-application-always-on-top/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 04:34:00 +0000</pubDate>
		<dc:creator>Pavan Kumar</dc:creator>
				<category><![CDATA[GUI]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://guibuilder.wordpress.com/?p=95</guid>
		<description><![CDATA[Since the last few weeks  , our  Java Swing Client  sporadically..seems to set itself  on top of every other windows application.  As things always happen, the problem was occasionally reproducible by our testing team, but  not  by our development team..but it was a big problem for our clients to have their numerous window apps  open behind our [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=guibuilder.wordpress.com&amp;blog=3100541&amp;post=95&amp;subd=guibuilder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since the last few weeks  , our  Java Swing Client  sporadically..seems to set itself  on top of every other windows application.  As things always happen, the problem was occasionally reproducible by our testing team, but  not  by our development team..but it was a big problem for our clients to have their numerous window apps  open behind our Swing app.</p>
<p>So finally I decided to investigate further &#8230;.a cursory search in the Sun Bug Database took me to <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829546">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829546</a></p>
<p>which explains the issue wonderfully&#8230;.and the best  part was that  it was always Reproducible !</p>
<p>The bug states that  &#8217;Modal dialog causes the underlying parent JFrame to be set to Always on top&#8217;. Here are the steps to reproduce the bug</p>
<pre style="white-space:pre-wrap;font-family:Monaco, Courier, 'Courier New';font-size:12px;color:#666666;"><strong><span style="color:#808080;">1) Open a JFrame (note the "alwaysOnTop" is not set to true).
2) Spawn a Modal Dialog with 'Always on Top' , From the Frame
3) While the dialog is open ,click on the underlying Frame (nothing happens as modal dialog is blocking it).
4) Now close the dialog and suddenly the parent JFrame is now set to be always on top. It won't happen if  the parent Frame ,was NOT clicked on while the dialog was open.</span></strong></pre>
<p>The worst part of the bug is the fact that <strong>&#8216;Always On Top&#8217;</strong> property of the Frame is false although the Frame itself is visually always on top.</p>
<p>One workaround as mentioned is to ..</p>
<p><strong>setAlwaysonTop(true)</strong>..followed by&#8230;.<strong>setAlwaysonTop(false) </strong>, on the Main Window whenever a modal dialog closed .</p>
<p>This bug seems to have crept in only after JRE 6 Update 11  , and was submitted in early April&#8230; Hopefully it would get fixed in the upcoming releases &#8230;..</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/guibuilder.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/guibuilder.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/guibuilder.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/guibuilder.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/guibuilder.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/guibuilder.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/guibuilder.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/guibuilder.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/guibuilder.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/guibuilder.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/guibuilder.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/guibuilder.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/guibuilder.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/guibuilder.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=guibuilder.wordpress.com&amp;blog=3100541&amp;post=95&amp;subd=guibuilder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://guibuilder.wordpress.com/2009/10/14/java-swing-application-always-on-top/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f14d218de35e10323b27d5ed3582e45f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guibuilder</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual VM &#8230;Saved My Day</title>
		<link>http://guibuilder.wordpress.com/2009/06/25/visual-vm/</link>
		<comments>http://guibuilder.wordpress.com/2009/06/25/visual-vm/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 03:02:47 +0000</pubDate>
		<dc:creator>Pavan Kumar</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://guibuilder.wordpress.com/?p=7</guid>
		<description><![CDATA[Last week I found myself dealing with the issue , of my Java application repeatedly freezing  &#8230;i guessed it could be due to a thread deadlock but wasn&#8217;t exactly sure which part of my code was the cause.  Since I already had a license of a Commercial Java Profiler  I  thought things would be easy..but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=guibuilder.wordpress.com&amp;blog=3100541&amp;post=7&amp;subd=guibuilder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last week I found myself dealing with the issue , of my Java application repeatedly freezing  &#8230;i guessed it could be due to a thread deadlock but wasn&#8217;t exactly sure which  part of my code was the cause.  Since I already had a license of a Commercial Java Profiler  I  thought things would be easy..but unfortunately the profiler didnt seem to auto connect to my running vm unless I explicitly  gave it  the  port no.<br />
<br class="blank" /></p>
<p style="text-align:center;">Having heard a lot about <em><a title="Visual VM" href="https://visualvm.dev.java.net/">Visual VM</a></em> , I decided to give it a try and  was surprised to find that it auto detected my running vm on startup and gave a brief summary of the vm properties.<a href="http://guibuilder.files.wordpress.com/2009/06/startup.png"><img class="aligncenter" src="http://guibuilder.files.wordpress.com/2009/06/startup.png?w=400&#038;h=250" alt="Startup" width="400" height="250" /></a></p>
<p style="text-align:center;">
<p><br class="blank" /></p>
<p style="text-align:center;">The next thing  I did was to take a thread dump of my application and analyze it for any deadlocks..and Visual VM saved my day here ,by auto detecting the deadlock from the Thread Dump .The explanation given..was quite clear and helped fix the dealock issue.<br />
<a href="http://guibuilder.files.wordpress.com/2009/06/deadlock.png"><img class="aligncenter" src="http://guibuilder.files.wordpress.com/2009/06/deadlock.png?w=400&#038;h=250" alt="Deadlock" width="400" height="250" /></a></p>
<p><br class="blank" /><br />
<strong> Once this critical issue was fixed I decided to see what else Visual Vm had to offer  and  have listed some of its interesting features  :</strong></p>
<p style="text-align:center;">1) Get a Performance Overview of the entire application..like the no of Live Threads ,Classes Loaded ,Heap Memory usage in the Monitor Tab.  The Threads tab in turn allows a deeper insight  into all the system and user threads.<br />
<a href="http://guibuilder.files.wordpress.com/2009/06/overview.png"><img class="aligncenter" src="http://guibuilder.files.wordpress.com/2009/06/overview.png?w=400&#038;h=250" alt="Overview" width="400" height="250" /></a><br />
<br class="blank" /><br />
2) Profile the memory usage of an application using the Profiler Tab.  This view  allows us to profile  objects of  the classes that  we are  interested in..and shows the size &amp; No of Live Objects.  We can  also take a snapshot of the profiler  output  to analyse further and either save it as an image or a custom .nps format .</p>
<p style="text-align:center;"><a href="http://guibuilder.files.wordpress.com/2009/06/memoryprofiling.png"><img class="aligncenter" src="http://guibuilder.files.wordpress.com/2009/06/memoryprofiling.png?w=400&#038;h=250" alt="Memory Profiling" width="400" height="250" /></a></p>
<p><br class="blank" /></p>
<p style="text-align:center;">3) Profile the cpu usage of an application using the Profiler Tab. This view basically shows the method invocation count and time taken for execution. Again we can filter based on the  methods names that we are interested in.<br />
<a href="http://guibuilder.files.wordpress.com/2009/06/cpu_profiling.png"><img class="aligncenter" src="http://guibuilder.files.wordpress.com/2009/06/cpu_profiling.png?w=400&#038;h=250" alt="cpu profiling" width="400" height="250" /></a></p>
<p><br class="blank" /></p>
<p style="text-align:center;">4)  The Ability to Compare Profiled Memory Snapshots,from the File Menu,  is another very useful feature..which helps to analyse  the memory usage of the application ,taken at various stages.<br />
<a href="http://guibuilder.files.wordpress.com/2009/06/compare.jpg"><img class="aligncenter" src="http://guibuilder.files.wordpress.com/2009/06/compare.jpg?w=400&#038;h=250" alt="Compare" width="400" height="250" /></a></p>
<p style="text-align:center;">
<hr />
<h3><br class="blank" /> A few features which I felt , could make VisualVm much more complete , in order of preference are :</h3>
<p><em>1) Automatic Deadlock Detection and  Notification of a Running application at any point during its lifetime, without having to explictly lookup  its  Thread Dump.</em></p>
<p><em>2) Finding all paths to a given Object from the various roots would help in fixing memory leaks much more quickly , than having to find it manually.</em></p>
<p><em>3)  Graphical Representation of the profiling results in realtime would be much easier to comprehend over a long period of time, than having  a tabular display.</em></p>
<p><em>4) An option to freeze all the views for the currently profiled application,instead of taking indivisual snapshots of the views.</em><br class="blank" /></p>
<hr />
<h3><br class="blank" /><strong>Conclusion:</strong></h3>
<p><a title="Java Visual VM" href="https://visualvm.dev.java.net/">Java VisualVM </a>combines several monitoring, troubleshooting, and profiling utilities into a single tool and is extensibe using the <a title="Visual VM Entry Points" href="https://visualvm.dev.java.net/api-quickstart.html">Visual VM Entry Points</a>. Most of the functionality offered by the standalone tools  such as <span style="font-style:italic;">jmap</span>, <span style="font-style:italic;">jstat</span> and <span style="font-style:italic;">jstack</span> have been integrated into Java VisualVM. The best part is  that it is open source &amp;  since JDK 6 Update 7  ,has been bundled into the standard JDK as &#8216;jvisualvm.exe&#8217; .</p>
<p><em><br />
</em> <br class="blank" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/guibuilder.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/guibuilder.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/guibuilder.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/guibuilder.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/guibuilder.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/guibuilder.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/guibuilder.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/guibuilder.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/guibuilder.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/guibuilder.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/guibuilder.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/guibuilder.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/guibuilder.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/guibuilder.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=guibuilder.wordpress.com&amp;blog=3100541&amp;post=7&amp;subd=guibuilder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://guibuilder.wordpress.com/2009/06/25/visual-vm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f14d218de35e10323b27d5ed3582e45f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guibuilder</media:title>
		</media:content>

		<media:content url="http://guibuilder.files.wordpress.com/2009/06/startup.png" medium="image">
			<media:title type="html">Startup</media:title>
		</media:content>

		<media:content url="http://guibuilder.files.wordpress.com/2009/06/deadlock.png" medium="image">
			<media:title type="html">Deadlock</media:title>
		</media:content>

		<media:content url="http://guibuilder.files.wordpress.com/2009/06/overview.png" medium="image">
			<media:title type="html">Overview</media:title>
		</media:content>

		<media:content url="http://guibuilder.files.wordpress.com/2009/06/memoryprofiling.png" medium="image">
			<media:title type="html">Memory Profiling</media:title>
		</media:content>

		<media:content url="http://guibuilder.files.wordpress.com/2009/06/cpu_profiling.png" medium="image">
			<media:title type="html">cpu profiling</media:title>
		</media:content>

		<media:content url="http://guibuilder.files.wordpress.com/2009/06/compare.jpg" medium="image">
			<media:title type="html">Compare</media:title>
		</media:content>
	</item>
		<item>
		<title>Showing Progress without blocking the Entire application</title>
		<link>http://guibuilder.wordpress.com/2008/03/12/showing-progress-without-blocking-the-entire-application/</link>
		<comments>http://guibuilder.wordpress.com/2008/03/12/showing-progress-without-blocking-the-entire-application/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 14:39:38 +0000</pubDate>
		<dc:creator>Pavan Kumar</dc:creator>
				<category><![CDATA[Swing]]></category>

		<guid isPermaLink="false">http://guibuilder.wordpress.com/?p=3</guid>
		<description><![CDATA[A very common usecase  in Gui applications is to show an indeterminate progress bar whenever there is a long running task. Tasks can range from short ones such as data fetch to long ones such as a data migration or complex computations. In case of long running tasks it makes sense to show progress, but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=guibuilder.wordpress.com&amp;blog=3100541&amp;post=3&amp;subd=guibuilder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A very common usecase  in  Gui applications  is to show an  indeterminate progress bar whenever there is a long running task. Tasks can range from short ones such as data fetch to long ones such as a data migration or complex computations. In case of long running tasks it makes sense to show progress, but at the same time allow the user to perform other actions or work on other screens parallely ,within the application.</p>
<p>Swing allows us to achieve this functionality rather easily.</p>
<p>The demo below shows this functionality.</p>
<p>The overlay progress is shown whenever the tree is expanded and the nodes are loaded using swingworker, while u can continue to work on the table on the right .</p>
<p><a HREF="http://www.jroller.com/psychostud/resource/Demo.jnlp"><img SRC="http://guibuilder.files.wordpress.com/2008/03/webstart1.thumbnail.jpeg" ALT="webstart1.jpeg" /></a></p>
<p>The  OverlayProgressContainer component enables us to do just this.</p>
<p>1:  It  makes use of the lesser known but very helpful Overlaylayout to stack components .<br />
2:  It has 2 children<br />
a) User defined panel added as the bottom most child<br />
b) GlassPanel added as the top most child .This panel shows progress using the JxBusyLabel and blocks keyboard(using KeyEventDispatcher),mouse events on the user defined panel .</p>
<p>3:  The glasspanel is registered as listener to a swing worker and shows the progress based on the states(&#8216;started&#8217;, &#8216;done&#8217;)  of the swing worker</p>
<p>To make use of this component<br />
1: Set the user defined panel using setDecoratedComponent(JComponent component)..<br />
2: Set the swingWorker so that glasspanel can registered itself using setSwingWorker(SwingWorker worker)<br />
Note: SwingWorker can be used only once and hence has to be created again once it has finished executing.</p>
<p><a HREF="http://www.jroller.com/psychostud/resource/src.jar">Link to Sources</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/guibuilder.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/guibuilder.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/guibuilder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/guibuilder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/guibuilder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/guibuilder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/guibuilder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/guibuilder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/guibuilder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/guibuilder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/guibuilder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/guibuilder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/guibuilder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/guibuilder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/guibuilder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/guibuilder.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=guibuilder.wordpress.com&amp;blog=3100541&amp;post=3&amp;subd=guibuilder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://guibuilder.wordpress.com/2008/03/12/showing-progress-without-blocking-the-entire-application/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f14d218de35e10323b27d5ed3582e45f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guibuilder</media:title>
		</media:content>
	</item>
	</channel>
</rss>
