﻿<?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-沙漠中的鱼-文章分类-控件开发</title><link>http://www.blogjava.net/aoneany/category/29835.html</link><description>欲上天堂，先下地狱</description><language>zh-cn</language><lastBuildDate>Sat, 10 May 2008 19:31:43 GMT</lastBuildDate><pubDate>Sat, 10 May 2008 19:31:43 GMT</pubDate><ttl>60</ttl><item><title>树转化为表格图型展现</title><link>http://www.blogjava.net/aoneany/articles/199752.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Sat, 10 May 2008 14:04:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/199752.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/199752.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/199752.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/199752.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/199752.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做过</span><span lang="EN-US">olap</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发的人可能都知道，他查出来的表的结构就是一棵树，我们需要把树转化为表，通过表格的样式用图型更加客观的展现出来</span>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们有一棵这样的树</span></p>
<p><img style="width: 511px; height: 253px" height="253" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/31421/tree.jpg" width="511" border="0" /><br />
<span style="font-size: 10.5pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-bidi-language: AR-SA">我们现在要把这棵树转化成如下的表格样式</span><br />
<img style="width: 518px; height: 181px" height="181" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/31421/r_biaoge.jpg" width="518" border="0" /><br />
&nbsp; </p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通过表格我们可以看出，他有三部份，主栏，宾栏，主体，而主栏，是一颗向右展开的树，宾栏是一颗向下展开的树，而主体部份则是一个表格</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表格的整体布局</span></p>
<p><img height="267" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/31421/kuang.gif" width="496" border="0" /><br />
主栏<br />
<img style="width: 482px; height: 212px" height="212" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/31421/zhulan.gif" width="482" border="0" /><br />
HTML结构</p>
<p class="MsoNormal"><span lang="EN-US">&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">李宁</span><span lang="EN-US">DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鞋</span><span lang="EN-US">/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上衣</span><span lang="EN-US">DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US">&lt;/DIV&gt;<br />
</span></p>
<p class="MsoNormal"><span lang="EN-US">宾栏<br />
</span><span lang="EN-US"><img style="width: 461px; height: 306px" height="306" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/31421/binlan.gif" width="461" border="0" /><br />
</span><span lang="EN-US">HTML结构</span><span lang="EN-US"></p>
<p class="MsoNormal"><span lang="EN-US">&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大区</span><span lang="EN-US">&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">华北</span><span lang="EN-US">&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">华中</span><span lang="EN-US">&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US">&lt;/DIV&gt;<br />
</span><span lang="EN-US">主体<br />
</span><span lang="EN-US"><img style="width: 502px; height: 150px" height="150" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/31421/zhuti.gif" width="502" border="0" /><br />
</span><span lang="EN-US">HTML结构</span><span lang="EN-US"></p>
<p class="MsoNormal"><span lang="EN-US">&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;l&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/DIV&gt;</span></p>
<p class="MsoNormal"><span lang="EN-US">&lt;/DIV&gt;<br />
</span></p>
<p class="MsoNormal"><span lang="EN-US">其中在HTML中边框全部采用宽度或高度为1PX的DIV构成<br />
</span><span lang="EN-US">在div布局中，横向展开采用的属性是float="left"<br />
</span><span lang="EN-US"><br />
</span></p>
<p class="MsoNormal">我设计的Js类结构图如下<br />
<span lang="EN-US"><img style="width: 473px; height: 321px" height="321" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/31421/js_class.gif" width="473" border="0" /><br />
</span></p>
<p class="MsoNormal">一个由树转化为表格的程序就完成，但是在开发过程中，有时候也碰到一些问题，如效率等，如有哪位对这控件或报表开发方面有兴趣的，大家一起交流<span lang="EN-US"></p>
</span></span></span>
<img src ="http://www.blogjava.net/aoneany/aggbug/199752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-05-10 22:04 <a href="http://www.blogjava.net/aoneany/articles/199752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA AWT简单打印程序</title><link>http://www.blogjava.net/aoneany/articles/186543.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Sat, 15 Mar 2008 14:35:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/186543.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/186543.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/186543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/186543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/186543.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;以前用SWT 3232包的在WINDOWS下开发的打印程序，在linux下的包没有实现打印功能，不过最新的eclipse3.3下面已经实现了打印功能，但是需要linux2.10才可以，但是我们采用共创linux的内核只有2.06，只好改用AWT来实现，在网上找到一段简单的打印程序&nbsp;&nbsp;1import&nbsp;java.aw...&nbsp;&nbsp;<a href='http://www.blogjava.net/aoneany/articles/186543.html'>阅读全文</a><img src ="http://www.blogjava.net/aoneany/aggbug/186543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-03-15 22:35 <a href="http://www.blogjava.net/aoneany/articles/186543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发窗体控件所应当注意的几个问题</title><link>http://www.blogjava.net/aoneany/articles/183223.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Sun, 02 Mar 2008 04:09:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/183223.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/183223.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/183223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/183223.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/183223.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在开发产品和项目中一般都不可避免的使用到控件，有时候在控件选型方面也没有找到符合自己需求的控件，那样我们只能自己开发了。开发控件对于一个程序员的能力和思想会有很大的帮助，一个好的控件就是不断重构和设计出来的。而且他重构时的对外部的景响不是很大。<span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>我也开发控件一年了，从<span lang="EN-US">.net</span>版到<span lang="EN-US">JAVA</span>版，在开发这两种不同语言控件时，我感觉语言对我们的影响不是很大，因为他们的语言都差不多，只是有一些小许的差别。在发控件的过程中，资源和效率是很重要的，特别是对于数据量很大的报表软件，资源占用的大小和显示的效率直接影响到产品的性能。我根据我的经验，列出几点需要注意的地方<span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.</span>尽量的减少控件的重画，在重画控件时，尽量采用局部刷新。大家在开发<span lang="EN-US">JAVA</span>或<span lang="EN-US">.NET</span>控件时，应当都会知道有一个设置重画的区域范围。如果是为自己公司产品开发的控件，可以把部份重画的控制权提交给外面管理，来控制控件的刷新。<span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.</span>只画可见区域，我们在开发控件过程中，不能所以有的对象画出来，而只能把当前在窗体上可以看见的区域部份画出来。<span lang="EN-US"><o:p></o:p></span>
<p><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.</span>在移动或改变控件大小过程中，最好不要重画控件，在<span lang="EN-US">NET</span>中，<span lang="EN-US">MS</span>提拱了在屏幕画的<span lang="EN-US">ControlPaint.DrawSelectionFrame</span>静态方法<span lang="EN-US">.</span>但是你画第二次时，你需要在第一次重画的区域，再重新画一次，如果不重新画一次，效果大家自己试试就知道。而在<span lang="EN-US">JAVA</span>中，我们就不能在屏幕上画了，但是我们也可以实现相同的效果，在<span lang="EN-US">SWING</span>中我们可以重新创建一个<span lang="EN-US">Graphics</span>对象，在<span lang="EN-US">SWT</span>中我们可以重新创一个<span lang="EN-US">GC</span>对象。他们两种实现的思想基本上是相同，就是把当前要画的区域把他<span lang="EN-US">copy</span>下来，等画完，马上把当前画的域前保存的图又重画上去，再重新画另一个对象。特别是在<span lang="EN-US">SWT</span>控件开发中，必须要注意的是，你把<span lang="EN-US">COPY</span>区域画完后，需要立即把那张图片<span lang="EN-US">dispose</span>。不然会占用窗体的很多句柄。会影响到其他软件的运行<span lang="EN-US">.</span>好像<span lang="EN-US">swt</span>是直接调用的<span lang="EN-US">windows</span>底层对象，他不能自动销毁<span lang="EN-US">.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;4.</span>尽量减少资源的占用，现在机器的性能越来越好，内存也越来越大，但是他都是有限的，好像<span lang="EN-US">MS</span>当时设计时的考虑就是你的机器的内存足够大，我的程序就能很好的运行。这一点我觉得<span lang="EN-US">JAVA</span>考虑的比较好。当超出内存的范围时会出现内存溢出现像。这就不得不考虑来占用更少资源。在开发表格控件中，每一个单元格都有一个样式，如果每一个单元格的样式内容都是一个，但是你都是创建一个新的对像的，这样明显的会浪费资源和严重的影响到控件运行的效率，一个比较的办法就是把那些样式统一放在一个资源管理器里面，如果有相同的样式，就不需要创建一个新的对像，我们就可以直接调用资源管理器里面的样式就行了。如果我们还要达到很的性能的，我们可以设置一个资源管理器的样式数量限制范围。我们做项目的过程把数据导入<span lang="EN-US">EXCEL</span>时，有时候样式太多，<span lang="EN-US">EXCEL</span>就会弹出一个窗体。不能加载这么多样式。需要注意的是我们在开发<span lang="EN-US">swt</span>控件时，他里面的<span lang="EN-US">font</span>和<span lang="EN-US">color</span>都是调用操作系统的对象，我们在用完时就需要把他<span lang="EN-US">dipose.</span>但是老是对他创建和销毁，这样也会很严重影响到控件的效率。现在有一位牛人写了一个<span lang="EN-US">SWT</span>的资源管理类，写得很不错，大家可以直接拿来用就可以了。</p>
<img src ="http://www.blogjava.net/aoneany/aggbug/183223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-03-02 12:09 <a href="http://www.blogjava.net/aoneany/articles/183223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>