﻿<?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-jiadd</title><link>http://www.blogjava.net/jiadong/</link><description>Java Blog </description><language>zh-cn</language><lastBuildDate>Mon, 18 May 2026 16:05:55 GMT</lastBuildDate><pubDate>Mon, 18 May 2026 16:05:55 GMT</pubDate><ttl>60</ttl><item><title>win系统下oracle客户端免安装连接数据库服务器方法 </title><link>http://www.blogjava.net/jiadong/articles/348550.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Tue, 19 Apr 2011 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/articles/348550.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/348550.html</wfw:comment><comments>http://www.blogjava.net/jiadong/articles/348550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/348550.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/348550.html</trackback:ping><description><![CDATA[准备软件<br />
1.instantclient-basic-win32-11.2.0.1.0<br />
地址：http://www.oracle.com/technetwork/topics/winsoft-085727.html<br />
2.PL/SQL DEV（自己准备）<br />
<br />
具体操作<br />
<br />
1. 下载完成后解压，需要注意的是如果使用的是win7 x64位系统，还是需要使用准备软件中1所描述的软件，x64位的Oracle客户端支持不好，在配置时没有成功。<br />
2. 解压后在包含N多*.dll，的同级目录建立建立network/admin/tnsnames.ora文件<br />
3. 记事本打开上述建立的文件，加入如下内容<br />
<br />
abc=<br />
&nbsp;&nbsp;(DESCRIPTION =<br />
&nbsp;&nbsp; &nbsp;(ADDRESS = (PROTOCOL = TCP)(HOST = 117.79.227.144)(PORT = 1521))<br />
&nbsp;&nbsp; &nbsp;(CONNECT_DATA =<br />
&nbsp;&nbsp; &nbsp; &nbsp;(SER 
<img src ="http://www.blogjava.net/jiadong/aggbug/348550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2011-04-19 10:37 <a href="http://www.blogjava.net/jiadong/articles/348550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring AOP 创建通知</title><link>http://www.blogjava.net/jiadong/articles/236365.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Fri, 24 Oct 2008 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/articles/236365.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/236365.html</wfw:comment><comments>http://www.blogjava.net/jiadong/articles/236365.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/236365.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/236365.html</trackback:ping><description><![CDATA[ <img src ="http://www.blogjava.net/jiadong/aggbug/236365.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2008-10-24 11:44 <a href="http://www.blogjava.net/jiadong/articles/236365.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>矩形旋转坐标点的问题</title><link>http://www.blogjava.net/jiadong/archive/2008/09/19/229917.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Fri, 19 Sep 2008 05:28:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2008/09/19/229917.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/229917.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2008/09/19/229917.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/229917.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/229917.html</trackback:ping><description><![CDATA[<p>如图</p>
<img style="width: 351px; height: 313px" height="313" alt="" src="http://www.blogjava.net/images/blogjava_net/jiadong/juxing.jpg" width="351" border="0" /><br />
就是一个四边形(A,B,C,D),从倾斜于中点旋转到水平处<br />
求其A点的新座标<br />
已知A点坐标,四边形各边长,旋转角度<br />
<br />
实现源代码java:<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.math;<br />
<img id="Codehighlighter1_18_100_Open_Image" onclick="this.style.display='none'; Codehighlighter1_18_100_Open_Text.style.display='none'; Codehighlighter1_18_100_Closed_Image.style.display='inline'; Codehighlighter1_18_100_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_18_100_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_18_100_Closed_Text.style.display='none'; Codehighlighter1_18_100_Open_Image.style.display='inline'; Codehighlighter1_18_100_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_18_100_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_18_100_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;表示坐标点类<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;说明:&nbsp;其中的xAsix&nbsp;表示的是X轴<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其中的yAsix&nbsp;表示的是y轴<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;</span><span style="color: #808080">@author</span><span style="color: #008000">&nbsp;jiadong<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_125_566_Open_Image" onclick="this.style.display='none'; Codehighlighter1_125_566_Open_Text.style.display='none'; Codehighlighter1_125_566_Closed_Image.style.display='inline'; Codehighlighter1_125_566_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_125_566_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_125_566_Closed_Text.style.display='none'; Codehighlighter1_125_566_Open_Image.style.display='inline'; Codehighlighter1_125_566_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Coordinate</span><span id="Codehighlighter1_125_566_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_125_566_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;xAxis&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;yAxis;<br />
<img id="Codehighlighter1_215_262_Open_Image" onclick="this.style.display='none'; Codehighlighter1_215_262_Open_Text.style.display='none'; Codehighlighter1_215_262_Closed_Image.style.display='inline'; Codehighlighter1_215_262_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_215_262_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_215_262_Closed_Text.style.display='none'; Codehighlighter1_215_262_Open_Image.style.display='inline'; Codehighlighter1_215_262_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Coordinate(</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;xAxis,</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;yAxis)</span><span id="Codehighlighter1_215_262_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_215_262_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.xAxis&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;xAxis;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.yAxis&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;yAxis;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_284_285_Open_Image" onclick="this.style.display='none'; Codehighlighter1_284_285_Open_Text.style.display='none'; Codehighlighter1_284_285_Closed_Image.style.display='inline'; Codehighlighter1_284_285_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_284_285_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_284_285_Closed_Text.style.display='none'; Codehighlighter1_284_285_Open_Image.style.display='inline'; Codehighlighter1_284_285_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Coordinate()</span><span id="Codehighlighter1_284_285_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_284_285_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
<img id="Codehighlighter1_324_362_Open_Image" onclick="this.style.display='none'; Codehighlighter1_324_362_Open_Text.style.display='none'; Codehighlighter1_324_362_Closed_Image.style.display='inline'; Codehighlighter1_324_362_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_324_362_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_324_362_Closed_Text.style.display='none'; Codehighlighter1_324_362_Open_Image.style.display='inline'; Codehighlighter1_324_362_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;toString()&nbsp;</span><span id="Codehighlighter1_324_362_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_324_362_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">xAxis</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">yAxis</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_389_408_Open_Image" onclick="this.style.display='none'; Codehighlighter1_389_408_Open_Text.style.display='none'; Codehighlighter1_389_408_Closed_Image.style.display='inline'; Codehighlighter1_389_408_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_389_408_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_389_408_Closed_Text.style.display='none'; Codehighlighter1_389_408_Open_Image.style.display='inline'; Codehighlighter1_389_408_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;getXAxis()&nbsp;</span><span id="Codehighlighter1_389_408_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_389_408_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;xAxis;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_444_463_Open_Image" onclick="this.style.display='none'; Codehighlighter1_444_463_Open_Text.style.display='none'; Codehighlighter1_444_463_Closed_Image.style.display='inline'; Codehighlighter1_444_463_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_444_463_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_444_463_Closed_Text.style.display='none'; Codehighlighter1_444_463_Open_Image.style.display='inline'; Codehighlighter1_444_463_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setXAxis(</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;axis)&nbsp;</span><span id="Codehighlighter1_444_463_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_444_463_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xAxis&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;axis;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_490_509_Open_Image" onclick="this.style.display='none'; Codehighlighter1_490_509_Open_Text.style.display='none'; Codehighlighter1_490_509_Closed_Image.style.display='inline'; Codehighlighter1_490_509_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_490_509_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_490_509_Closed_Text.style.display='none'; Codehighlighter1_490_509_Open_Image.style.display='inline'; Codehighlighter1_490_509_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;getYAxis()&nbsp;</span><span id="Codehighlighter1_490_509_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_490_509_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;yAxis;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_545_564_Open_Image" onclick="this.style.display='none'; Codehighlighter1_545_564_Open_Text.style.display='none'; Codehighlighter1_545_564_Closed_Image.style.display='inline'; Codehighlighter1_545_564_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_545_564_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_545_564_Closed_Text.style.display='none'; Codehighlighter1_545_564_Open_Image.style.display='inline'; Codehighlighter1_545_564_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setYAxis(</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;axis)&nbsp;</span><span id="Codehighlighter1_545_564_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_545_564_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yAxis&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;axis;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<br />
<br />
<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.math;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;junit.framework.TestCase;<br />
<img id="Codehighlighter1_52_205_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_205_Open_Text.style.display='none'; Codehighlighter1_52_205_Closed_Image.style.display='inline'; Codehighlighter1_52_205_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_52_205_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_52_205_Closed_Text.style.display='none'; Codehighlighter1_52_205_Open_Image.style.display='inline'; Codehighlighter1_52_205_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_52_205_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_52_205_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;*&nbsp;思路:<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;*&nbsp;&nbsp;先求得中心点的坐标,加入中心点坐标为原点坐标<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;*&nbsp;&nbsp;那么求得结果应该为(-b/2,o)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;*&nbsp;&nbsp;按照这个道理,把中心坐标平移量求的<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;*&nbsp;&nbsp;在把(-b/2,o)&nbsp;按照平移量&nbsp;平移即所得结果<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;*&nbsp;</span><span style="color: #808080">@author</span><span style="color: #008000">&nbsp;jiadong<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;*&nbsp;&nbsp;@time&nbsp;2008年9月19日<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_245_1313_Open_Image" onclick="this.style.display='none'; Codehighlighter1_245_1313_Open_Text.style.display='none'; Codehighlighter1_245_1313_Closed_Image.style.display='inline'; Codehighlighter1_245_1313_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_245_1313_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_245_1313_Closed_Text.style.display='none'; Codehighlighter1_245_1313_Open_Image.style.display='inline'; Codehighlighter1_245_1313_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MathDemo&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;TestCase</span><span id="Codehighlighter1_245_1313_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_245_1313_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_248_256_Open_Image" onclick="this.style.display='none'; Codehighlighter1_248_256_Open_Text.style.display='none'; Codehighlighter1_248_256_Closed_Image.style.display='inline'; Codehighlighter1_248_256_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_248_256_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_248_256_Closed_Text.style.display='none'; Codehighlighter1_248_256_Open_Image.style.display='inline'; Codehighlighter1_248_256_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_248_256_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_248_256_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;b,d&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;width&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">&nbsp;;<br />
<img id="Codehighlighter1_286_296_Open_Image" onclick="this.style.display='none'; Codehighlighter1_286_296_Open_Text.style.display='none'; Codehighlighter1_286_296_Closed_Image.style.display='inline'; Codehighlighter1_286_296_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_286_296_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_286_296_Closed_Text.style.display='none'; Codehighlighter1_286_296_Open_Image.style.display='inline'; Codehighlighter1_286_296_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_286_296_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_286_296_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">a&nbsp;,c&nbsp;*</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;higth&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">&nbsp;;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;angle&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">90</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Coordinate&nbsp;aOld&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Coordinate(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">1.5f</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;ang&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;angle</span><span style="color: #000000">*</span><span style="color: #000000">Math.PI</span><span style="color: #000000">/</span><span style="color: #000000">180</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_486_1311_Open_Image" onclick="this.style.display='none'; Codehighlighter1_486_1311_Open_Text.style.display='none'; Codehighlighter1_486_1311_Closed_Image.style.display='inline'; Codehighlighter1_486_1311_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_486_1311_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_486_1311_Closed_Text.style.display='none'; Codehighlighter1_486_1311_Open_Image.style.display='inline'; Codehighlighter1_486_1311_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;testsetCoordinateCenter()</span><span id="Codehighlighter1_486_1311_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_486_1311_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">先求出中心点的坐标来<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">按照B点C点的中心位置为中心点坐标点思路来求得</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;tempX&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">float</span><span style="color: #000000">)&nbsp;(width&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;Math.cos(ang));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;tempY&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">float</span><span style="color: #000000">)&nbsp;(width&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;Math.sin(ang));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">求得B点的坐标</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coordinate&nbsp;B_cd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Coordinate();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B_cd.setXAxis(aOld.getXAxis()</span><span style="color: #000000">+</span><span style="color: #000000">tempX);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B_cd.setYAxis(aOld.getYAxis()</span><span style="color: #000000">-</span><span style="color: #000000">tempY);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;tempXX&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">float</span><span style="color: #000000">)(higth&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">Math.sin(ang));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;tempYY&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">float</span><span style="color: #000000">)(higth&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">Math.cos(ang));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">求得C点的坐标</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coordinate&nbsp;C_cd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Coordinate();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C_cd.setXAxis(aOld.getXAxis()</span><span style="color: #000000">+</span><span style="color: #000000">tempXX);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C_cd.setYAxis(aOld.getYAxis()</span><span style="color: #000000">-</span><span style="color: #000000">tempYY);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">得出中心点的坐标</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coordinate&nbsp;center&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Coordinate();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;center.setXAxis((B_cd.getXAxis()</span><span style="color: #000000">+</span><span style="color: #000000">C_cd.getXAxis())</span><span style="color: #000000">/</span><span style="color: #000000">2</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;center.setYAxis((B_cd.getYAxis()</span><span style="color: #000000">-</span><span style="color: #000000">C_cd.getYAxis())</span><span style="color: #000000">/</span><span style="color: #000000">2</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">得出最终的结果</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Coordinate&nbsp;aNew&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Coordinate();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aNew.setXAxis(center.getXAxis()</span><span style="color: #000000">-</span><span style="color: #000000">width</span><span style="color: #000000">/</span><span style="color: #000000">2</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aNew.setYAxis(center.getYAxis());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(aNew);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<img src ="http://www.blogjava.net/jiadong/aggbug/229917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2008-09-19 13:28 <a href="http://www.blogjava.net/jiadong/archive/2008/09/19/229917.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JfreeChar 画甘特图 时间轴(DateAxis)显示格式问题的解决</title><link>http://www.blogjava.net/jiadong/archive/2008/09/18/229738.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Thu, 18 Sep 2008 09:09:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2008/09/18/229738.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/229738.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2008/09/18/229738.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/229738.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/229738.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 甘特 JFreeChart  java DateAxis&nbsp;&nbsp;<a href='http://www.blogjava.net/jiadong/archive/2008/09/18/229738.html'>阅读全文</a><img src ="http://www.blogjava.net/jiadong/aggbug/229738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2008-09-18 17:09 <a href="http://www.blogjava.net/jiadong/archive/2008/09/18/229738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java反射机制的小例子</title><link>http://www.blogjava.net/jiadong/archive/2008/09/18/229688.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Thu, 18 Sep 2008 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2008/09/18/229688.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/229688.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2008/09/18/229688.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/229688.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/229688.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: java反射机制小例子&nbsp;&nbsp;<a href='http://www.blogjava.net/jiadong/archive/2008/09/18/229688.html'>阅读全文</a><img src ="http://www.blogjava.net/jiadong/aggbug/229688.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2008-09-18 14:21 <a href="http://www.blogjava.net/jiadong/archive/2008/09/18/229688.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jbpm环境的搭建</title><link>http://www.blogjava.net/jiadong/archive/2008/09/18/229683.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Thu, 18 Sep 2008 06:11:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2008/09/18/229683.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/229683.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2008/09/18/229683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/229683.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/229683.html</trackback:ping><description><![CDATA[首先从官网下载最新版本,目前使用的版本为3.2.2
<div> 下载jbpm-jpdl-suite-3.2.2.zip,解压找到Myeclipse存放Link的文件夹,添加或者新建link文件.内容为:</div>
<div>path = D:/developlib/jbpm-kit/jbpm-jpdl-suite-3.2.2/jbpm-jpdl-3.2.2/designer(指定到解压文件的目录)</div>
<div>此时打开Myeclipse &#8594;new project&#8594;other 就可以看到Jboos Jbpm的插件了。<img src="http://www.blogjava.net/images/blogjava_net/jiadong/workflow_01.jpg" border="0" alt="" /></div>
<div><br />
</div>
<img src ="http://www.blogjava.net/jiadong/aggbug/229683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2008-09-18 14:11 <a href="http://www.blogjava.net/jiadong/archive/2008/09/18/229683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决MySql的中文问题</title><link>http://www.blogjava.net/jiadong/archive/2008/01/11/mysql.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Fri, 11 Jan 2008 04:26:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2008/01/11/mysql.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/174580.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2008/01/11/mysql.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/174580.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/174580.html</trackback:ping><description><![CDATA[在使用mysql的时候老是出现乱码问题，很麻烦。我的解决办法如下。<br />
<br />
在config里面设置编码格式为utf8<br />
<br />
同时保证所建立的表的编码为utf8，就ok了<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;
<p class="MsoNormal"><span lang="EN-US" style="mso-no-proof: yes"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;&nbsp;&nbsp; </p>
<p class="MsoNormal"><span lang="EN-US" style="mso-no-proof: yes"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="图片_x0020_1" style="visibility: visible; width: 414.75pt; height: 21.75pt; mso-wrap-style: square" alt="未命名1.bmp" type="#_x0000_t75" o:spid="_x0000_i1026"><v:imagedata o:title="未命名1" src="file:///C:\DOCUME~1\jiadong\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.png"></v:imagedata></v:shape></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-no-proof: yes"><v:shape id="图片_x0020_0" style="visibility: visible; width: 415.5pt; height: 194.25pt; mso-wrap-style: square" alt="未命名.bmp" type="#_x0000_t75" o:spid="_x0000_i1025"><v:imagedata o:title="未命名" src="file:///C:\DOCUME~1\jiadong\LOCALS~1\Temp\msohtmlclip1\01\clip_image003.png"></v:imagedata></v:shape></span></p>
</o:p></span>
<p class="MsoNormal"></p>
<img src ="http://www.blogjava.net/jiadong/aggbug/174580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2008-01-11 12:26 <a href="http://www.blogjava.net/jiadong/archive/2008/01/11/mysql.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jbmp - 1</title><link>http://www.blogjava.net/jiadong/archive/2007/12/04/165178.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Tue, 04 Dec 2007 06:27:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2007/12/04/165178.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/165178.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2007/12/04/165178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/165178.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/165178.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jbmp - 1&nbsp;&nbsp;<a href='http://www.blogjava.net/jiadong/archive/2007/12/04/165178.html'>阅读全文</a><img src ="http://www.blogjava.net/jiadong/aggbug/165178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2007-12-04 14:27 <a href="http://www.blogjava.net/jiadong/archive/2007/12/04/165178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 JFreeChart来创建基于web的图表</title><link>http://www.blogjava.net/jiadong/archive/2007/11/12/159973.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Mon, 12 Nov 2007 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2007/11/12/159973.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/159973.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2007/11/12/159973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/159973.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/159973.html</trackback:ping><description><![CDATA[<p><a name="1">JFreeChart项目简介</a></p>
<p>
JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目，它主要用来各种各样的图表，这些图表包括：饼图、柱状图(普
通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。这些不同式样的图表基本上可以满足目前的要求。为了减少篇幅本文主
要介绍前面三种类型的图表，读者可以触类旁通去开发其他样式的图表。下面几个是JFreeChart产生的这三种类型图表的结果：
</p>
<br />
<a name="N10050"><strong>图1</strong></a><br />
<img alt="" src="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/images/image001.gif" />
<br />
<br />
<a name="N1005D"><strong>图2</strong></a><br />
<img alt="" src="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/images/image002.gif" />
<br />
<br />
<a name="N1006A"><strong>图3</strong></a><br />
<img alt="" src="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/images/image003.gif" />
<br />
<p>上
面的三个图都是表示四个季度的某个产品的销量信息。在继续下面小节之前必须先准备好开发环境，因为是基于WEB浏览器的图表展现，因此需要一个
Servlet引擎或者是J2EE应用服务器（例如WebSphere，Tomcat等）。WEB环境的搭建就不累赘了，读者根据喜好自行安装。
JFreeChart引擎本身需要到SourceForge.net上下载，地址如下：
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td>
            <pre>JFreeChart主页：<br />
            <a href="http://www.jfree.org/jfreechart/index.html">http://www.jfree.org/jfreechart/index.html</a><br />
            JFreeChart下载页面：<br />
            <a href="http://sourceforge.net/projects/jfreechart/">http://sourceforge.net/projects/jfreechart/</a><br />
            <br />
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />
<p>下载的时候需要注意的是必须下载两个文件：JFreeChart以及Jcommon。目前最新配套版本是：JFreeChart 0.9.11	Jcommon 0.8.6
</p>
<p>这里有点笔者在开发中遇见的问题需要注意的是：在使用Eclipse开发的时候会报一个莫名其妙的错误，错误可能指向某个类文件的第一行。遇到这样的问题一般是因为没有把Jcommon的jar包设置到项目的类路径中的缘故。具体的原因不祥。
</p>
<br />
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" height="1" width="100%" /><br />
            <img alt="" src="http://www.ibm.com/i/c.gif" border="0" height="6" width="8" /></td>
        </tr>
    </tbody>
</table>
<table align="right" cellpadding="0" cellspacing="0">
    <tbody>
        <tr align="right">
            <td><img src="http://www.ibm.com/i/c.gif" alt="" height="4" width="100%" /><br />
            <table border="0" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" alt="" border="0" height="16" width="16" /><br />
                        </td>
                        <td align="right" valign="top"><a href="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/#main" class="fbox"><strong>回页首</strong></a></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<p><a name="2">解读JFreeChart的源码结构</a></p>
<p>在
开始使用JFreeChart之前我们有必要先大概了解一下JFreeChart本身的结构以及它所带一些例子程序，这样有助于我们下一步自行开发。下载
JFreeChart包后已经带有非常丰富的例子，因为JFreeChart这个项目本身的使用文档非常少，因此学习它最好的办法就是学习它所带的例子源
码。在包org.jfree.chart.demo中有几十个文件用于展示JFreeChart所能支持的所有图表的结果。如果你的JDK是比较新的情况
下可能在运行这些例子时会有问题，现象如下：
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td>
            <pre>java.lang.UnsatisfiedLinkError: initDDraw<br />
            at sun.awt.windows.Win32OffScreenSurfaceData.initDDraw(Native Method)<br />
            at sun.awt.windows.Win32OffScreenSurfaceData.&lt;clinit&gt;(Win32OffScreenSurfaceData.java:141)<br />
            at sun.awt.Win32GraphicsDevice.&lt;clinit&gt;(Win32GraphicsDevice.java:58)<br />
            at sun.awt.Win32GraphicsEnvironment.makeScreenDevice(Win32GraphicsEnvironment.java:168)<br />
            at sun.java2d.SunGraphicsEnvironment.getScreenDevices(SunGraphicsEnvironment.java:240)<br />
            at sun.awt.Win32GraphicsEnvironment.getDefaultScreenDevice(Win32GraphicsEnvironment.java:61)<br />
            at java.awt.Window.init(Window.java:224)<br />
            at java.awt.Window.&lt;init&gt;(Window.java:268)<br />
            at java.awt.Frame.&lt;init&gt;(Frame.java:398)<br />
            at javax.swing.JFrame.&lt;init&gt;(JFrame.java:198)<br />
            at org.jfree.chart.demo.JFreeChartDemo.&lt;init&gt;(JFreeChartDemo.java:148)<br />
            at org.jfree.chart.demo.JFreeChartDemo.main(JFreeChartDemo.java:285)<br />
            Exception in thread "main"<br />
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />
<p>这个错误是由于新版的Swing大量的使用了微软的
DirectDraw的技术来提高画图的性能，而可能你的显卡在这时候会跟你闹点情绪或者显卡本身并不支持这样的一个技术。难道就没有办法了嘛？要解决这
个问题也非常简单，我们可以屏蔽掉DirectDraw，不让Swing使用该技术就可以了。在运行这些代码时给虚拟机指定参数-
Dsun.java2d.noddraw即可。
</p>
<p>这时可能你又该纳闷了，不说是基于Web的图表嘛，怎么又扯到Swing上了？这是因为为了使开发者容易上手，无需配置
任何运行环境，所以这些例子都是基于GUI方式的用于展现给开发者如果生成一个图表，我们要学习的也就是如何利用这个引擎生成图表而不是怎么来显示一个图
表。当我们把生成的图表对象Export到一个图像文件即可在Web上发布。
</p>
<p>下面我们来介绍JFreeChart中几个核心的对象类：</p>
<table border="1" cellpadding="5" cellspacing="0" width="100%">
    <tbody>
        <tr bgcolor="#99ccff">
            <td width="30%">类名</td>
            <td width="70%">类的作用以及简单描述</td>
        </tr>
        <tr>
            <td>JFreeChart</td>
            <td>图表对象，任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象</td>
        </tr>
        <tr>
            <td>XXXXXDataset</td>
            <td>数据集对象，用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类</td>
        </tr>
        <tr>
            <td>XXXXXPlot</td>
            <td>图表区域对象，基本上这个对象决定着什么样式的图表，创建该对象的时候需要Axis、Renderer以及数据集对象的支持</td>
        </tr>
        <tr>
            <td>XXXXXAxis</td>
            <td>用于处理图表的两个轴：纵轴和横轴</td>
        </tr>
        <tr>
            <td>XXXXXRenderer</td>
            <td>负责如何显示一个图表对象</td>
        </tr>
        <tr>
            <td>XXXXXURLGenerator</td>
            <td>用于生成Web图表中每个项目的鼠标点击链接</td>
        </tr>
        <tr>
            <td>XXXXXToolTipGenerator</td>
            <td>用于生成图象的帮助提示，不同类型图表对应不同类型的工具提示类</td>
        </tr>
    </tbody>
</table>
<p>基
本上我认为JFreeChart项目本身的类结构的设计并不是很好，首先在创建图表的时候用到了大量的工厂方法，这样做虽然可以简化创建图表对象的代码，
但是对项目本身或者开发人员来讲自行扩展一种新的图表都仍然是一件很麻烦的事情；其次除图表对象本身外其余的类过于复杂，使用者必须去了解每个类型的图表
对象应该对应哪些Axis、Plot、Renderer类，并且必须非常熟悉这些类的构造函数中每个参数的具体含义。这些问题都大大困扰很多初学者。不
过，虽然存在很多问题，但是JFreeChart本身仍不失为一个非常优秀的图表引擎，况且项目本身也在逐渐的发展中。
</p>
<p>在非常简略的介绍了JFreeChart本身的代码结构后，下面我们开始动手试验几个常用的图表并把他们放到web上。
</p>
<br />
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" height="1" width="100%" /><br />
            <img alt="" src="http://www.ibm.com/i/c.gif" border="0" height="6" width="8" /></td>
        </tr>
    </tbody>
</table>
<table align="right" cellpadding="0" cellspacing="0">
    <tbody>
        <tr align="right">
            <td><img src="http://www.ibm.com/i/c.gif" alt="" height="4" width="100%" /><br />
            <table border="0" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" alt="" border="0" height="16" width="16" /><br />
                        </td>
                        <td align="right" valign="top"><a href="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/#main" class="fbox"><strong>回页首</strong></a></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<p><a name="3">使用JFreeChart生成各种样式的图表</a></p>
<p>
限于篇幅的问题我们在这里只实现两种常用的图表，其他类型图表读者可以触类旁通。我们先给出柱状图的实现，饼图的实现再来跟柱状图进行比较。
</p>
<p><a name="N10101">1 柱状图</a></p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td>
            <pre>package lius.chart.demo;<br />
            import java.io.*;<br />
            import org.jfree.data.*;<br />
            import org.jfree.chart.*;<br />
            import org.jfree.chart.plot.*;<br />
            /**<br />
            * 该类用于演示最简单的柱状图生成<br />
            * @author Winter Lau<br />
            */<br />
            public class BarChartDemo {<br />
            public static void main(String[] args) throws IOException{<br />
            CategoryDataset dataset = getDataSet2();<br />
            JFreeChart chart = ChartFactory.createBarChart3D(<br />
            "水果产量图", // 图表标题<br />
            "水果", // 目录轴的显示标签<br />
            "产量", // 数值轴的显示标签<br />
            dataset, // 数据集<br />
            PlotOrientation.VERTICAL, // 图表方向：水平、垂直<br />
            true, 	// 是否显示图例(对于简单的柱状图必须是false)<br />
            false, 	// 是否生成工具<br />
            false 	// 是否生成URL链接<br />
            );<br />
            <br />
            FileOutputStream fos_jpg = null;<br />
            try {<br />
            fos_jpg = new FileOutputStream("D:""fruit.jpg");<br />
            ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);<br />
            } finally {<br />
            try {<br />
            fos_jpg.close();<br />
            } catch (Exception e) {}<br />
            }<br />
            }<br />
            /**<br />
            * 获取一个演示用的简单数据集对象<br />
            * @return<br />
            */<br />
            private static CategoryDataset getDataSet() {<br />
            DefaultCategoryDataset dataset = new DefaultCategoryDataset();<br />
            dataset.addValue(100, null, "苹果");<br />
            dataset.addValue(200, null, "梨子");<br />
            dataset.addValue(300, null, "葡萄");<br />
            dataset.addValue(400, null, "香蕉");<br />
            dataset.addValue(500, null, "荔枝");<br />
            return dataset;<br />
            }<br />
            /**<br />
            * 获取一个演示用的组合数据集对象<br />
            * @return<br />
            */<br />
            private static CategoryDataset getDataSet2() {<br />
            DefaultCategoryDataset dataset = new DefaultCategoryDataset();<br />
            dataset.addValue(100, "北京", "苹果");<br />
            dataset.addValue(100, "上海", "苹果");<br />
            dataset.addValue(100, "广州", "苹果");<br />
            dataset.addValue(200, "北京", "梨子");<br />
            dataset.addValue(200, "上海", "梨子");<br />
            dataset.addValue(200, "广州", "梨子");<br />
            dataset.addValue(300, "北京", "葡萄");<br />
            dataset.addValue(300, "上海", "葡萄");<br />
            dataset.addValue(300, "广州", "葡萄");<br />
            dataset.addValue(400, "北京", "香蕉");<br />
            dataset.addValue(400, "上海", "香蕉");<br />
            dataset.addValue(400, "广州", "香蕉");<br />
            dataset.addValue(500, "北京", "荔枝");<br />
            dataset.addValue(500, "上海", "荔枝");<br />
            dataset.addValue(500, "广州", "荔枝");<br />
            return dataset;<br />
            }<br />
            }<br />
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />
<p>程序运行结束后生成的图片文件效果如下图所示：</p>
<br />
<a name="N10112"><strong>图4</strong></a><br />
<img alt="" src="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/images/image004.gif" />
<br />
<p>如果是使用简单的数据即使用getDataSet方法获取数据集时产生的图片文件如下：</p>
<br />
<a name="N10122"><strong>图5</strong></a><br />
<img alt="" src="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/images/image005.gif" />
<br />
<p><a name="N1012D">2 饼图</a></p>
<p>对于饼图而言，数据集的获取用的不是同一个数据集类，另外饼图不支持同一个类别的项目中还有子项目这样的数据。我们只给出创建饼图的代码，至于写图表到一个文件则与柱状图一致，无需重复。
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td>
            <pre>package lius.chart.demo;<br />
            import java.io.*;<br />
            import org.jfree.data.*;<br />
            import org.jfree.chart.*;<br />
            /**<br />
            * 用于演示饼图的生成<br />
            * @author Winter Lau<br />
            */<br />
            public class PieChartDemo {<br />
            public static void main(String[] args) throws IOException{<br />
            DefaultPieDataset data = getDataSet();<br />
            JFreeChart chart = ChartFactory.createPie3DChart("水果产量图",  // 图表标题<br />
            data, <br />
            true, // 是否显示图例<br />
            false,<br />
            false<br />
            );<br />
            //写图表对象到文件，参照柱状图生成源码<br />
            }<br />
            /**<br />
            * 获取一个演示用的简单数据集对象<br />
            * @return<br />
            */<br />
            private static DefaultPieDataset getDataSet() {<br />
            DefaultPieDataset dataset = new DefaultPieDataset();<br />
            dataset.setValue("苹果",100);<br />
            dataset.setValue("梨子",200);<br />
            dataset.setValue("葡萄",300);<br />
            dataset.setValue("香蕉",400);<br />
            dataset.setValue("荔枝",500);<br />
            return dataset;<br />
            }<br />
            }<br />
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />
<p>生成的饼图文件效果如下：
</p>
<br />
<a name="N10141"><strong>图6</strong></a><br />
<img alt="" src="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/images/image006.gif" />
<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" height="1" width="100%" /><br />
            <img alt="" src="http://www.ibm.com/i/c.gif" border="0" height="6" width="8" /></td>
        </tr>
    </tbody>
</table>
<table align="right" cellpadding="0" cellspacing="0">
    <tbody>
        <tr align="right">
            <td><img src="http://www.ibm.com/i/c.gif" alt="" height="4" width="100%" /><br />
            <table border="0" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" alt="" border="0" height="16" width="16" /><br />
                        </td>
                        <td align="right" valign="top"><a href="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/#main" class="fbox"><strong>回页首</strong></a></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<p><a name="4">将生成的图表移到浏览器上</a></p>
<p>
为了将生成的图表直接传给客户端浏览器，只需要将前面两个例子中的文件流换成是通过HttpServletResponse对象获取到的输出流，详细代码清单如下：
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td>
            <pre>package lius.chart.demo;<br />
            import java.io.IOException;<br />
            import javax.servlet.*;<br />
            import javax.servlet.http.HttpServlet;<br />
            import org.jfree.data.*;<br />
            import org.jfree.chart.*;<br />
            /**<br />
            * 演示通过servlet直接输出图表<br />
            * @author Winter Lau<br />
            */<br />
            public class ChartDemoServlet extends HttpServlet {<br />
            public void service(ServletRequest req, ServletResponse res)<br />
            throws ServletException, IOException <br />
            {<br />
            res.setContentType("image/jpeg");<br />
            DefaultPieDataset data = getDataSet();<br />
            JFreeChart chart = ChartFactory.createPie3DChart("水果产量图",<br />
            data,<br />
            true,<br />
            false,<br />
            false<br />
            );<br />
            <br />
            ChartUtilities.writeChartAsJPEG(res.getOutputStream(),<br />
            100,chart,400,300,null);<br />
            }<br />
            /**<br />
            * 获取一个演示用的简单数据集对象<br />
            * @return<br />
            */<br />
            private static DefaultPieDataset getDataSet() {<br />
            DefaultPieDataset dataset = new DefaultPieDataset();<br />
            dataset.setValue("苹果",100);<br />
            dataset.setValue("梨子",200);<br />
            dataset.setValue("葡萄",300);<br />
            dataset.setValue("香蕉",400);<br />
            dataset.setValue("荔枝",500);<br />
            return dataset;<br />
            }<br />
            }<br />
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" height="1" width="100%" /><br />
            <img alt="" src="http://www.ibm.com/i/c.gif" border="0" height="6" width="8" /></td>
        </tr>
    </tbody>
</table>
<table align="right" cellpadding="0" cellspacing="0">
    <tbody>
        <tr align="right">
            <td><img src="http://www.ibm.com/i/c.gif" alt="" height="4" width="100%" /><br />
            <table border="0" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" alt="" border="0" height="16" width="16" /><br />
                        </td>
                        <td align="right" valign="top"><a href="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/#main" class="fbox"><strong>回页首</strong></a></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<p><a name="5">高级主题</a></p>
<p>很
多情况我们不仅仅要求可以在浏览器上显示一个图表，我们更需要客户可以直接在图表上做一下交互的操作，例如获取信息提示，点击图表某个部分进行更详细信息
的展示等等。例如前面生成的简单柱状图，用户需要在看到柱状图后点击某种水果例如是苹果即可看到各个地区苹果产量的情况。为此就要求该图形具有交互操作的
功能。在HTML中为了让一个图像具有可交互的功能就必须给该图像定义一个Map对象。下表节选一段具有该功能的HTML代码
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td>
            <pre>&lt;MAP NAME="chartMap"&gt;<br />
            &lt;AREA SHAPE="RECT" COORDS="81,15,126,254" href="?series=0&amp;category=100" title="100 = 7,048" <br />
            onclick="javascript:clickChart('100');return false;"&gt;<br />
            &lt;AREA SHAPE="RECT" COORDS="143,27,188,255" href="?series=0&amp;category=200" title="200 = 6,721" <br />
            onclick="javascript: clickChart ('200');return false;"&gt;<br />
            &lt;AREA SHAPE="RECT" COORDS="205,54,250,255" href="?series=0&amp;category=300" title="300 = 5,929" <br />
            onclick="javascript: clickChart ('300');return false;"&gt;<br />
            &lt;AREA SHAPE="RECT" COORDS="267,85,312,255" href="?series=0&amp;category=400" title="400 = 5,005" <br />
            onclick="javascript: clickChart ('400');return false;"&gt;<br />
            &lt;AREA SHAPE="RECT" COORDS="329,17,374,255" href="?series=0&amp;category=Diet" title="Diet = 7,017" onclick="javascript: <br />
            clickChart ('Diet');return false;"&gt;<br />
            &lt;/MAP&gt;<br />
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />
<p>由此就产生了一个问题：如果根据一个图像来生成对应
的MAP对象。我们回头看看刚才的代码，在创建一个图表对象时候有两个参数，我们举柱状图的例子来讲这两个参数就是ChartFactory.
createBarChart3D方法中的最后两个参数，这两个参数的类型都是布尔值。这两个参数意思分别是：是否创建工具提示(tooltip)以及是
否生成URL。这两个参数分别对应着MAP中一个AREA的title属性以及href属性。
</p>
<p>可是我想知道的是怎么来产生这个MAP啊！哈哈，不要着急，JFreeChart已经帮我们做好生成MAP对象的功能。
为了生成MAP对象就要引入另外一个对象：ChartRenderingInfo。因为JFreeChart没有直接的方法利用一个图表对象直接生成
MAP数据，它需要一个中间对象来过渡，这个对象就是ChartRenderingInfo。下图是生成MAP数据的流程图：
</p>
<br />
<a name="N1016E"><strong>图7</strong></a><br />
<img alt="" src="http://www-128.ibm.com/developerworks/cn/java/l-jfreechart/images/image007.gif" />
<br />
<p>如
上图所示，ChartUtilities类是整个流程的核心，它周围的对象都是一些例如数据对象或者是文件等。这个流程简单描述如下：首先创建一个
ChartRenderingInfo对象并在调用ChartUtilities的writeChartAsJPEG时作为最后一个参数传递进去。调用该
方法结束后将产生一个图像文件以及一个填充好MAP数据的ChartRenderingInfo对象，有了这个对象我们还是没有办法获取具体的MAP数
据，我们还必须借助于ChartUtilities的writeImageMap方法来将ChartRenderingInfo对象读取出来，获取MAP
数据的代码片断如下：
</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td>
            <pre>		PrintWriter w = null;<br />
            FileOutputStream fos_jpg = null;<br />
            FileOutputStream fos_cri = null;<br />
            try{<br />
            //根据不同类型的图表使用不同类，以下是针对饼图的操作<br />
            PiePlot plot = (PiePlot) chart.getPlot();<br />
            plot.setURLGenerator(new StandardPieURLGenerator(url));<br />
            //设置工具提示<br />
            plot.setToolTipGenerator(new StandardPieToolTipGenerator());<br />
            fos_jpg = new FileOutputStream(&#8220;d:""fruit.jpg&#8221;); <br />
            ChartUtilities.writeChartAsJPEG(<br />
            fos_jpg,<br />
            100,<br />
            chart,<br />
            400,<br />
            300,<br />
            info);<br />
            fos_cri = new FileOutputStream(__d:""fruit.map__);<br />
            w = new PrintWriter(fos_cri);<br />
            ChartUtilities.writeImageMap(w, __mapname__, info);<br />
            w.flush();<br />
            }finally{<br />
            try{<br />
            w.close();<br />
            }catch(Exception e){}	<br />
            try{<br />
            fos_cri.close();<br />
            }catch(Exception e){}	<br />
            try{<br />
            fos_jpg.close();<br />
            }catch(Exception e){}<br />
            }<br />
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<br />
<p>打开文件D:"fruit.map，文件的内容就是
要写到页面上的MAP数据。把生成的图像文件以及MAP数据文件写到页面上即可完成热点图表的功能。至于怎么结合两者之间的关系例如图像的useMap属
性值必须与MAP对象的名称结合起来，必须根据实际的应用情况进行相应的处理。笔者建议把二者通过标签库封装起来，图像文件的名称以及MAP对象的名称由
标签库统一进行控制，这样可以保证二者的一致性。
</p>
<img src ="http://www.blogjava.net/jiadong/aggbug/159973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2007-11-12 15:09 <a href="http://www.blogjava.net/jiadong/archive/2007/11/12/159973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在项目中配置log4j</title><link>http://www.blogjava.net/jiadong/archive/2007/11/12/159924.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Mon, 12 Nov 2007 04:21:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2007/11/12/159924.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/159924.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2007/11/12/159924.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/159924.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/159924.html</trackback:ping><description><![CDATA[如下：<br />
<br />
&nbsp;1.配置Log4j.propertity文件在webroot下（我的目录是：/logconfig/log4j.propertity）<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">##&nbsp;LOGGER&nbsp;##<br />
##&nbsp;configure&nbsp;root&nbsp;Logger<br />
log4j.rootLogger=INFO,console,flow,errorfile<br />
<br />
##&nbsp;APPENDERS&nbsp;##<br />
#&nbsp;define&nbsp;an&nbsp;appender&nbsp;named&nbsp;console,&nbsp;which&nbsp;is&nbsp;set&nbsp;to&nbsp;be&nbsp;a&nbsp;ConsoleAppender<br />
log4j.appender.console=org.apache.log4j.ConsoleAppender<br />
<br />
#&nbsp;define&nbsp;an&nbsp;appender&nbsp;named&nbsp;file,&nbsp;which&nbsp;is&nbsp;set&nbsp;to&nbsp;be&nbsp;a&nbsp;DailyRollingFileAppender<br />
log4j.appender.flow=org.apache.log4j.DailyRollingFileAppender<br />
log4j.appender.flow.File=${catalina.base}/logs/flowlog/Flowlog.txt<br />
log4j.appender.flow.DatePattern=yyyy-MM-dd'.txt'<br />
log4j.appender.flow.Threshold=INFO<br />
log4j.appender.flow.Append=true<br />
<br />
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender<br />
log4j.appender.errorfile.File=${catalina.base}/logs/errorlog/errorlog.txt<br />
log4j.appender.errorfile.DatePattern=yyyy-MM-dd'.txt'<br />
log4j.appender.errorfile.Threshold=WARN<br />
log4j.appender.file.Append=true<br />
<br />
##&nbsp;LAYOUTS&nbsp;##<br />
#&nbsp;assign&nbsp;a&nbsp;PatternLayout&nbsp;to&nbsp;console&nbsp;appender<br />
log4j.appender.console.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd&nbsp;HH:mm:ss}&nbsp;%l&nbsp;%n%-5p:&nbsp;&nbsp;%m%n<br />
<br />
#&nbsp;assign&nbsp;a&nbsp;PatternLayout&nbsp;to&nbsp;file&nbsp;appender<br />
log4j.appender.flow.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.flow.layout.ConversionPattern=%d{yyyy-MM-dd&nbsp;HH:mm:ss}&nbsp;%l&nbsp;%n%-5p:&nbsp;&nbsp;%m%n<br />
<br />
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd&nbsp;HH:mm:ss}&nbsp;%l&nbsp;%n%-5p:&nbsp;&nbsp;%m%n<br />
<br />
</span></div>
&nbsp;2.初始化Log4j<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.bjzc.utility;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.apache.log4j.Logger;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.apache.log4j.PropertyConfigurator;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;LogUtil&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;功能：初始化日志<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;jiadong<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;String&nbsp;ConfigPath&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;初始化日志属性设置<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;init(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;log4jPath&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ConfigPath&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PropertyConfigurator.configure(log4jPath);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;流程记录日志获取<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;Logger&nbsp;getFlowLogger(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;Logger.getLogger(</span><span style="color: #000000;">"</span><span style="color: #000000;">flow</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;错误日志获取<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;Logger&nbsp;getErrorLogger(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;Logger.getLogger(</span><span style="color: #000000;">"</span><span style="color: #000000;">error</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
}<br />
</span></div>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">ackage&nbsp;com.bjzc.utility;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.apache.log4j.Logger;<br />
</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;*&nbsp;功能：后台输出日志<br />
&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;jiadong<br />
&nbsp;*版本：1.0<br />
&nbsp;*时间：2007年11月12日<br />
&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;InitLogger&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;Logger&nbsp;writeLog&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;init(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitLogger.writeLog&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;LogUtil.getFlowLogger()&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
3.在项目启动的时候初始化日志配置，写个servlet通过web.xml写入<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.bjzc.utility;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.ServletConfig;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.http.HttpServlet;<br />
</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;*&nbsp;初始化的Servlet<br />
&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;jiadong<br />
&nbsp;*版本：1.0<br />
&nbsp;*时间：2007年11月09日<br />
&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
@SuppressWarnings(</span><span style="color: #000000;">"</span><span style="color: #000000;">serial</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;InitServlet&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;HttpServlet&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@SuppressWarnings(</span><span style="color: #000000;">"</span><span style="color: #000000;">unused</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;ServletConfig&nbsp;config&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;init(ServletConfig&nbsp;config){<br />
&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;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.config&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;config;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;configPath&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;config.getServletContext().getRealPath(<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;</span><span style="color: #000000;">"</span><span style="color: #000000;">/logconfig/log4j.properties</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LogUtil.ConfigPath&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;configPath;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LogUtil.init();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitLogger.init();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitLogger.writeLog.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">初始化成功！</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(Exception&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitLogger.writeLog.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">初始化错误！</span><span style="color: #000000;">"</span><span style="color: #000000;">);<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;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
4.写入web.xml<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">description</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Servlet&nbsp;of&nbsp;init&nbsp;Log</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">description</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">display-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">by&nbsp;jiadong</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">display-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">InitServlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">com.bjzc.utility.InitServlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">load-on-startup</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">load-on-startup</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
<br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">InitServlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/com/bjzc/utility/InitServlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-mapping</span><span style="color: #0000ff;">&gt;</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/jiadong/aggbug/159924.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2007-11-12 12:21 <a href="http://www.blogjava.net/jiadong/archive/2007/11/12/159924.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>