﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java桌面技术</title><link>http://www.blogjava.net/javagui/</link><description>Java Desktop Technology</description><language>zh-cn</language><lastBuildDate>Tue, 07 Oct 2008 22:13:40 GMT</lastBuildDate><pubDate>Tue, 07 Oct 2008 22:13:40 GMT</pubDate><ttl>60</ttl><item><title>《FilthyRichClients》读书笔记(一)-SwingのEDT</title><link>http://www.blogjava.net/javagui/archive/2008/06/23/EDT.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Mon, 23 Jun 2008 14:49:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2008/06/23/EDT.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/210182.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2008/06/23/EDT.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/210182.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/210182.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 愿借助此帖能使读者彻底理解Swing事件队列及EDT机制，达到“此贴一发，余词尽废”的效果。&nbsp;&nbsp;<a href='http://www.blogjava.net/javagui/archive/2008/06/23/EDT.html'>阅读全文</a><img src ="http://www.blogjava.net/javagui/aggbug/210182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2008-06-23 22:49 <a href="http://www.blogjava.net/javagui/archive/2008/06/23/EDT.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FilthyRichClients中文版</title><link>http://www.blogjava.net/javagui/archive/2008/05/29/FilthyRichClients.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Thu, 29 May 2008 13:09:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2008/05/29/FilthyRichClients.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/203933.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2008/05/29/FilthyRichClients.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/203933.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/203933.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 没想到中文版居然这么快！真是欣喜若狂。打算今后陆续开始写读书笔记，对自己、Swing开发人员都有益处。&nbsp;&nbsp;<a href='http://www.blogjava.net/javagui/archive/2008/05/29/FilthyRichClients.html'>阅读全文</a><img src ="http://www.blogjava.net/javagui/aggbug/203933.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2008-05-29 21:09 <a href="http://www.blogjava.net/javagui/archive/2008/05/29/FilthyRichClients.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java SE 6 Update N ！</title><link>http://www.blogjava.net/javagui/archive/2008/03/12/Translucent.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Wed, 12 Mar 2008 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2008/03/12/Translucent.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/185639.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2008/03/12/Translucent.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/185639.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/185639.html</trackback:ping><description><![CDATA[Java SE 6 Update build 12开始支持窗体透明和不规则矩形了！之前只有一些开源项目在做这方面工作，如今加到了官方JDK版本中。<br />
<a title="http://www.pushing-pixels.org/?p=260" href="http://www.pushing-pixels.org/?p=260">http://www.pushing-pixels.org/?p=260</a><br />
你要去<a title="https://jdk6.dev.java.net/6uNea.html" href="https://jdk6.dev.java.net/6uNea.html">https://jdk6.dev.java.net/6uNea.html</a>下载JRE环境，目前还未集成进标准版中。这些都有望在JDK 7中变成现实！。去体验一下吧。
  <img src ="http://www.blogjava.net/javagui/aggbug/185639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2008-03-12 11:55 <a href="http://www.blogjava.net/javagui/archive/2008/03/12/Translucent.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过xml配置文件定义及布局组件</title><link>http://www.blogjava.net/javagui/archive/2007/12/31/171788.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Sun, 30 Dec 2007 16:49:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2007/12/31/171788.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/171788.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2007/12/31/171788.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/171788.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/171788.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 无论Matisse发展得如何强大，但是其本质只是用来生成Java代码而已，当你修改这代码后，再逆向恢复成UI设计器时Matisse却出于自己的一套安全考虑不允许你这样做，所以最终不得迫使开发人员放弃拖曳方式设计UI，而统统采用面向代码的方式。&nbsp;&nbsp;<a href='http://www.blogjava.net/javagui/archive/2007/12/31/171788.html'>阅读全文</a><img src ="http://www.blogjava.net/javagui/aggbug/171788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2007-12-31 00:49 <a href="http://www.blogjava.net/javagui/archive/2007/12/31/171788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>终于有时间写Blog了</title><link>http://www.blogjava.net/javagui/archive/2007/12/25/170373.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Tue, 25 Dec 2007 11:13:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2007/12/25/170373.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/170373.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2007/12/25/170373.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/170373.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/170373.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 沉默了近一个月，终于有时间写Blog了。&nbsp;&nbsp;<a href='http://www.blogjava.net/javagui/archive/2007/12/25/170373.html'>阅读全文</a><img src ="http://www.blogjava.net/javagui/aggbug/170373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2007-12-25 19:13 <a href="http://www.blogjava.net/javagui/archive/2007/12/25/170373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>netbeans6.0 final release!</title><link>http://www.blogjava.net/javagui/archive/2007/12/04/165110.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Tue, 04 Dec 2007 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2007/12/04/165110.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/165110.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2007/12/04/165110.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/165110.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/165110.html</trackback:ping><description><![CDATA[下载页面&nbsp;<br />
<a title="http://sunmicro.vo.llnwd.net/c1/netbeans/6.0/final/" href="http://sunmicro.vo.llnwd.net/c1/netbeans/6.0/final/">http://sunmicro.vo.llnwd.net/c1/netbeans/6.0/final/</a><br />
期待netbeans6.0咸鱼翻身。
<img src ="http://www.blogjava.net/javagui/aggbug/165110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2007-12-04 10:58 <a href="http://www.blogjava.net/javagui/archive/2007/12/04/165110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自定义布局管理器-CenterLayout</title><link>http://www.blogjava.net/javagui/archive/2007/11/29/164038.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Thu, 29 Nov 2007 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2007/11/29/164038.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/164038.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2007/11/29/164038.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/164038.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/164038.html</trackback:ping><description><![CDATA[<p>上文<a title="自定义布局管理器-FormLayout" href="http://www.blogjava.net/javagui/archive/2007/11/24/FormLayout.html">自定义布局管理器-FormLayout</a>介绍了FormLayout的参考实现，利用FormLayout，通过指定left、top、</p>
<p>right（可选）、bottom（可选）布局约束可以对组件进行精确定位。然而有些组件在业务上是有固定尺寸的，例如<a title="自定义组件之Button" href="http://www.blogjava.net/javagui/archive/2007/11/11/javagui.html">自定义组件之Button</a>介绍的一样，通过给按钮指定4种状态时的图片，那么组件的最佳尺寸就是图片的尺寸，因此组件的PreferredSize就可以确定，所以此时只需要组件<span style="color: red">中心</span>的确定坐标就可以了，实际组件的Location只和其PreferredSize有关。如下图所示：<br />
<img height="232" alt="" src="http://www.blogjava.net/images/blogjava_net/javagui/swing_demo/centerlayout.jpg" width="363" border="0" /><br />
这就是CenterLayout的思想。</p>
<p>修改FormData，只需要添加两个变量即可。<br />
public class FormData {<br />
&nbsp;public FormAttachment left;</p>
<p>&nbsp;public FormAttachment right;</p>
<p>&nbsp;public FormAttachment top;</p>
<p>&nbsp;public FormAttachment bottom;</p>
<p>&nbsp;<span style="color: red">public FormAttachment centerX;</span></p>
<p><span style="color: red">&nbsp;public FormAttachment centerY;<br />
</span>}<br />
CenterLayout与FormLayout不同只在于addLayoutComponent、layoutContainer这两个</p>
<p>方法实现，其他接口方法均相同，所以下面只介绍这两个方法实现，其他接口方法请</p>
<p>参阅上文<a title="自定义布局管理器-FormLayout" href="http://www.blogjava.net/javagui/archive/2007/11/24/FormLayout.html">自定义布局管理器-FormLayout</a><br />
在addLayoutComponent方法的开头，同样是对布局约束参数constraints合法性进行检查，这点与FormLayout大致相同。</p>
<p>if (constraints == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new IllegalArgumentException("constraints can't be </p>
<p>null");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (!(constraints instanceof FormData)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new IllegalArgumentException("constraints must be a"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + FormData.class.getName() + "instance");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ......&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
进行空值判断和类型判断。然后在else块中的代码如下：<br />
synchronized (comp.getTreeLock()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormData formData = (FormData) constraints;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (formData.centerX == null || formData.centerY == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new IllegalArgumentException(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "centerX FormAttachment and centerY </p>
<p>FormAttachment can't be null");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (comp.getPreferredSize() == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new RuntimeException(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "component must have preferred size before be </p>
<p>add into parent with CenterLayout");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; componentMap.put(comp, (FormData) constraints);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
对于CenterLayout来说，FormData对象的centerX、centerY必须给出，因为它代表，点的坐标，除此之外组件必须有PreferredSize属性来指定组件大小。</p>
<p>layoutContainer方法实现也大致相同<br />
public synchronized void layoutContainer(Container target) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; synchronized (target.getTreeLock()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int w = target.getWidth();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int h = target.getHeight();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Component[] components = target.getComponents();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Component component : components) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormData formData = componentMap.get(component);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (formData != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ......<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
上面这步与FormLayout一样。关键在if语句块内，代码如下：<br />
&nbsp;FormAttachment centerX = formData.centerX;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormAttachment centerY = formData.centerY;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int width = component.getPreferredSize().width;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int height = component.getPreferredSize().height;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int x = (int) (centerX.percentage * w) + centerX.offset </p>
<p>- width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; / 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int y = (int) (centerY.percentage * h) + centerY.offset<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - height / 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; component.setBounds(x, y, width, height);<br />
获得centerX、centerY以及最佳尺寸，如上图所示，不难得出x、y的计算方法。<br />
<br />
至此，自定义布局管理器就介绍到这里，这两个布局类可以解决很多<span style="color: red">静态布局</span>需求，所谓静态布局是指容器内有什么组件是固定的。如果遇到动态界面，例如组件的内容依照用户级别、插件扩展点等因素决定，也并不是难事，因为了解了布局管理器运行机制以后可很容易地定义适合你需求的布局类。对于静态布局来说，你可能厌倦了hard coding来布局，你希望这一切由xml这样的配置搞定，好，下一部分则开始&#8220;压轴戏&#8221;——用配置文件解决布局。</p>
<img src ="http://www.blogjava.net/javagui/aggbug/164038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2007-11-29 16:53 <a href="http://www.blogjava.net/javagui/archive/2007/11/29/164038.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自定义布局管理器-FormLayout</title><link>http://www.blogjava.net/javagui/archive/2007/11/24/FormLayout.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Sat, 24 Nov 2007 10:26:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2007/11/24/FormLayout.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/162877.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2007/11/24/FormLayout.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/162877.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/162877.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在java.awt包与javax.swing包下有许多现成的布局类，比如BorderLayout、FlowLayout，还有较为复杂的、用于精确定位的布局类GridBagLayout、SpringLayout等。起初我刚刚从事gooey时（06年中），企图依靠JDK自带的布局类进行布局，但是实际不可能或者说很难做到。&nbsp;&nbsp;<a href='http://www.blogjava.net/javagui/archive/2007/11/24/FormLayout.html'>阅读全文</a><img src ="http://www.blogjava.net/javagui/aggbug/162877.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2007-11-24 18:26 <a href="http://www.blogjava.net/javagui/archive/2007/11/24/FormLayout.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>布局管理器面面观</title><link>http://www.blogjava.net/javagui/archive/2007/11/18/Layout.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Sun, 18 Nov 2007 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2007/11/18/Layout.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/161403.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2007/11/18/Layout.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/161403.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/161403.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 布局管理器是一个实现了LayoutManager接口或LayoutManager2接口并且能够确定一个容器内部所有组件大小和位置的对象。尽管组件能够提供大小和对齐的提示信息，但是一个容器的布局管理器将最终决定组件的尺寸和位置。&nbsp;&nbsp;<a href='http://www.blogjava.net/javagui/archive/2007/11/18/Layout.html'>阅读全文</a><img src ="http://www.blogjava.net/javagui/aggbug/161403.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2007-11-18 15:15 <a href="http://www.blogjava.net/javagui/archive/2007/11/18/Layout.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NetBeans IDE 6.0 Release Candidate</title><link>http://www.blogjava.net/javagui/archive/2007/11/15/160690.html</link><dc:creator>sun_java_studio@yahoo.com.cn(电玩)</dc:creator><author>sun_java_studio@yahoo.com.cn(电玩)</author><pubDate>Thu, 15 Nov 2007 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/javagui/archive/2007/11/15/160690.html</guid><wfw:comment>http://www.blogjava.net/javagui/comments/160690.html</wfw:comment><comments>http://www.blogjava.net/javagui/archive/2007/11/15/160690.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javagui/comments/commentRss/160690.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javagui/services/trackbacks/160690.html</trackback:ping><description><![CDATA[<p>今天发现NetBeans IDE 6.0 候选版发布了。<br />
<a title="http://download.netbeans.org/netbeans/6.0/rc1/" href="http://download.netbeans.org/netbeans/6.0/rc1/">http://download.netbeans.org/netbeans/6.0/rc1/</a></p>
<img src ="http://www.blogjava.net/javagui/aggbug/160690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javagui/" target="_blank">sun_java_studio@yahoo.com.cn(电玩)</a> 2007-11-15 09:56 <a href="http://www.blogjava.net/javagui/archive/2007/11/15/160690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>