﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-沙漠中的鱼-文章分类-Java</title><link>http://www.blogjava.net/aoneany/category/34221.html</link><description>欲上天堂，先下地狱</description><language>zh-cn</language><lastBuildDate>Sun, 04 Aug 2013 10:43:06 GMT</lastBuildDate><pubDate>Sun, 04 Aug 2013 10:43:06 GMT</pubDate><ttl>60</ttl><item><title>编写bat脚本执行jar</title><link>http://www.blogjava.net/aoneany/articles/402292.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Fri, 02 Aug 2013 03:08:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/402292.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/402292.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/402292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/402292.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/402292.html</trackback:ping><description><![CDATA[<div>@echo off &nbsp; &nbsp; &nbsp;&nbsp;</div><div>set PATH=C:\Program Files (x86)\Java\jdk1.6.0_20\bin;C:\WINDOWS;C:\WINDOWS\COMMAND&nbsp;</div><div>set classpath=.;C:\Program Files (x86)\Java\jdk1.6.0_20\lib\tools.jar;C:\Program Files (x86)\Java\jdk1.6.0_20\lib\dt.jar&nbsp;</div><div></div><div>java -jar extract_excel.jar</div><div>&nbsp; &nbsp;</div><div>pause&nbsp;</div><img src ="http://www.blogjava.net/aoneany/aggbug/402292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2013-08-02 11:08 <a href="http://www.blogjava.net/aoneany/articles/402292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中Xpath实现当前节点寻找父节点下的字节点</title><link>http://www.blogjava.net/aoneany/articles/399416.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Fri, 17 May 2013 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/399416.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/399416.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/399416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/399416.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/399416.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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; ">section&nbsp;</span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="imgArea"</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">a&nbsp;</span><span style="color: #FF0000; ">title</span><span style="color: #0000FF; ">="雨伞指数"</span><span style="color: #FF0000; ">&nbsp;target</span><span style="color: #0000FF; ">="_blank"</span><span style="color: #FF0000; ">&nbsp;href</span><span style="color: #0000FF; ">="#"</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">a</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">span&nbsp;</span><span style="color: #FF0000; ">style</span><span style="color: #0000FF; ">="#"</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不带伞<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">span</span><span style="color: #0000FF; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">section</span><span style="color: #0000FF; ">&gt;</span></div>
在上面代码中，我们首先需要查找属性title=&#8221;<span style="color: #0000ff; font-size: 13px; background-color: #eeeeee;">雨伞指数</span>"的节点，Xpath写法为"//a[@title='<span style="color: #0000ff; font-size: 13px; background-color: #eeeeee;">雨伞指数</span>']",然后需要找到父节点，父节点标识为parent,Xpath的写法为&#8220;//a[@title='雨伞指数']/parent::section&#8221;，section表示为节点为Section节点。<br />然后需要查子点Span下的文本内容，完整的写法为&#8220;//a[@title='雨伞指数']/parent::section/span/text()&#8221;<img src ="http://www.blogjava.net/aoneany/aggbug/399416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2013-05-17 16:05 <a href="http://www.blogjava.net/aoneany/articles/399416.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Carrot2对文章进行聚类代码示例</title><link>http://www.blogjava.net/aoneany/articles/393951.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Tue, 08 Jan 2013 07:08:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/393951.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/393951.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/393951.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/393951.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/393951.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;ClusteringFlyStoneDocument&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main(String[]&nbsp;args)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Controller&nbsp;controller&nbsp;=&nbsp;ControllerFactory.createCachingPooling(IDocumentSource.<span style="color: #0000FF; ">class</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">创建需要处理的属性对象</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;Map&lt;String,&nbsp;Object&gt;&nbsp;attributes&nbsp;=&nbsp;Maps.newHashMap();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">需要处理的文档集合</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Document&gt;&nbsp;documents&nbsp;=&nbsp;SampleDocumentData.DOCUMENTS_DATA_MINING;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">将文档添加到聚类属性中</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CommonAttributesDescriptor.attributeBuilder(attributes).documents(documents);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">设置处理的语言（）</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MultilingualClusteringDescriptor.attributeBuilder(attributes).defaultLanguage(LanguageCode.CHINESE_SIMPLIFIED);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">设置需要处理的对象，以及聚类的算法</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;ProcessingResult&nbsp;englishResult&nbsp;=&nbsp;controller.process(attributes,&nbsp;LingoClusteringAlgorithm.<span style="color: #0000FF; ">class</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">获取结果，打印聚类主题及关联信息</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;List&lt;Cluster&gt;&nbsp;clustersByTopic&nbsp;=&nbsp;englishResult.getClusters();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("=======聚类主题=====");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(Cluster&nbsp;cluster&nbsp;:&nbsp;clustersByTopic){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("【主题&nbsp;】"&nbsp;+cluster.getLabel());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Document&gt;&nbsp;cDocLst&nbsp;=&nbsp;cluster.getAllDocuments();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(Document&nbsp;doc&nbsp;:&nbsp;cDocLst){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("--------"&nbsp;+&nbsp;doc.getTitle());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">通过URL进行聚类</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;ProcessingResult&nbsp;byDomainClusters&nbsp;=&nbsp;controller.process(documents,&nbsp;<span style="color: #0000FF; ">null</span>,ByUrlClusteringAlgorithm.<span style="color: #0000FF; ">class</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;List&lt;Cluster&gt;&nbsp;clustersByDomain&nbsp;=&nbsp;byDomainClusters.getClusters();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("=======URL聚类=======");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(Cluster&nbsp;cluster&nbsp;:&nbsp;clustersByDomain){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("【URL】"&nbsp;+cluster.getLabel());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Document&gt;&nbsp;cDocLst&nbsp;=&nbsp;cluster.getAllDocuments();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(Document&nbsp;doc&nbsp;:&nbsp;cDocLst){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("----"&nbsp;+&nbsp;doc.getTitle());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><img src ="http://www.blogjava.net/aoneany/aggbug/393951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2013-01-08 15:08 <a href="http://www.blogjava.net/aoneany/articles/393951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Eclipse中Debug程序打印日志信息配置</title><link>http://www.blogjava.net/aoneany/articles/388440.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Mon, 24 Sep 2012 07:49:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/388440.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/388440.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/388440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/388440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/388440.html</trackback:ping><description><![CDATA[<div>在Eclipse Debug Configurations窗口中，切换到Arguments页签，在VM argumenets文本框中配置Log4j配置文件的参数，如下：</div><div><div>-Dlog4j.configuration=file:/D:/WorkSpace/log4j.properties</div></div><img src ="http://www.blogjava.net/aoneany/aggbug/388440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2012-09-24 15:49 <a href="http://www.blogjava.net/aoneany/articles/388440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>部署到weblogic服务包冲突的解决办法</title><link>http://www.blogjava.net/aoneany/articles/383962.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Wed, 25 Jul 2012 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/383962.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/383962.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/383962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/383962.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/383962.html</trackback:ping><description><![CDATA[<span style="font-size: 8pt; ">当前开发了一个系统，在tomcat下运行正常，但是部署到weblogic下时，却出现了</span><span style="font-size: 8pt; ">java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive异常，经过查询，原来是当前系统和weblogic类库中都存在存类，超成包冲突的情况。如遇到此类情况，可以通过构建部署ear包，在weblogic-application.xml通过配置优先加载本项目中的包来处理。<br />
在ear工程下的web-info文件夹下，添加两个文件application.xml和weblogic-application.xml。<br />
application.xml文件内容如下：</span><span style="font-size: 13px; color: #0000ff; ">&lt;?</span><span style="font-size: 13px; color: #ff00ff; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="font-size: 13px; color: #0000ff; ">?&gt;</span><span style="font-size: 8pt; "><br />
</span>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><span style="color: #0000FF; ">&lt;!</span><span style="color: #FF00FF; ">DOCTYPE&nbsp;application&nbsp;PUBLIC<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"-//Sun&nbsp;Microsystems,&nbsp;Inc.//DTD&nbsp;J2EE&nbsp;Application&nbsp;1.3//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"http://java.sun.com/dtd/application_1_3.dtd"</span><span style="color: #0000FF; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">application</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">display-name</span><span style="color: #0000FF; ">&gt;</span>kubpwl<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">display-name</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">module</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">web</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">web-uri</span><span style="color: #0000FF; ">&gt;</span>kubpwl.war<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">web-uri</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">context-root</span><span style="color: #0000FF; ">&gt;</span>kubpwl<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">context-root</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">web</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">module</span><span style="color: #0000FF; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">application</span><span style="color: #0000ff; ">&gt;<br />
</span></div>
weblogic-application.xml文件内容如下：<span style="font-size: 13px; color: #0000ff; ">&lt;?</span><span style="font-size: 13px; color: #ff00ff; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="font-size: 13px; color: #0000ff; ">?&gt;</span><br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">wls:weblogic-application&nbsp;</span><span style="color: #FF0000; ">xmlns:wls</span><span style="color: #0000FF; ">="http://xmlns.oracle.com/weblogic/weblogic-application"</span><span style="color: #FF0000; ">&nbsp;xmlns:xsi</span><span style="color: #0000FF; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; ">&nbsp;xsi:schemaLocation</span><span style="color: #0000FF; ">="http://java.sun.com/xml/ns/javaee&nbsp;http://java.sun.com/xml/ns/javaee/javaee_5.xsd&nbsp;http://xmlns.oracle.com/weblogic/weblogic-application&nbsp;http://xmlns.oracle.com/weblogic/weblogic-application/1.3/weblogic-application.xsd"</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">weblogic-version:10.3.6</span><span style="color: #008000; ">--&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">wls:application-param</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">wls:param-name</span><span style="color: #0000FF; ">&gt;</span>webapp.encoding.default<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">wls:param-name</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">wls:param-value</span><span style="color: #0000FF; ">&gt;</span>UTF-8<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">wls:param-value</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">wls:application-param</span><span style="color: #0000FF; ">&gt;</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">wls:prefer-application-packages</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">wls:package-name</span><span style="color: #0000FF; ">&gt;</span>org.aspectj.weaver.tools.*<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">wls:package-name</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">wls:package-name</span><span style="color: #0000FF; ">&gt;</span>javax.jws.*<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">wls:package-name</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">wls:prefer-application-packages</span><span style="color: #0000FF; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">wls:weblogic-application</span><span style="color: #0000FF; ">&gt;</span></div>
<br /><span style="color: #800000; font-size: 13px; background-color: #eeeeee; ">prefer-application-packages</span>&nbsp;表示优先加载项目lib下的包。<img src ="http://www.blogjava.net/aoneany/aggbug/383962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2012-07-25 17:02 <a href="http://www.blogjava.net/aoneany/articles/383962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CXF服务集成Spring的配置（访问路径）</title><link>http://www.blogjava.net/aoneany/articles/377621.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Tue, 08 May 2012 07:57:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/377621.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/377621.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/377621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/377621.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/377621.html</trackback:ping><description><![CDATA[在Web.xml添加CXFServlet的配置<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">servlet-name</span><span style="color: #0000FF; ">&gt;</span>CXFServlet<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">servlet-name</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">servlet-class</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.cxf.transport.servlet.CXFServlet<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">servlet-class</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">load-on-startup</span><span style="color: #0000FF; ">&gt;</span>0<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">load-on-startup</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">servlet</span><span style="color: #0000FF; ">&gt;</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">servlet-mapping</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">servlet-name</span><span style="color: #0000FF; ">&gt;</span>CXFServlet<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">servlet-name</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">url-pattern</span><span style="color: #0000FF; ">&gt;</span>/services/*<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">url-pattern</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">servlet-mapping</span><span style="color: #0000FF; ">&gt;</span></div>
<span style="font-family: 宋体; color: #ac885b; font-size: 12pt; ">其中</span><span style="font-family: 'Courier New'; color: #ac885b; font-size: 12pt; ">/services/*</span><span style="font-family: 宋体; color: #ac885b; font-size: 12pt; ">表示会拦截所有</span><span style="font-family: 'Courier New'; color: #ac885b; font-size: 12pt; ">services</span><span style="font-family: 宋体; color: #ac885b; font-size: 12pt; ">下的访问路径。</span><span style="font-size:9.0pt;font-family:宋体;Courier New&quot;;Courier New&quot;;Courier New&quot;;color:#AC885B;"><br />
</span>
<div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<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; ">beans&nbsp;</span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000FF; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:jaxws</span><span style="color: #0000FF; ">="http://cxf.apache.org/jaxws"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:context</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/context"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000FF; ">="<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/beans&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/beans/spring-beans.xsd<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://cxf.apache.org/jaxws&nbsp;http://cxf.apache.org/schemas/jaxws.xsd<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context/spring-context-3.0.xsd"</span><span style="color: #0000FF; ">&gt;</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">import&nbsp;</span><span style="color: #FF0000; ">resource</span><span style="color: #0000FF; ">="classpath:META-INF/cxf/cxf.xml"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">import&nbsp;</span><span style="color: #FF0000; ">resource</span><span style="color: #0000FF; ">="classpath:META-INF/cxf/cxf-extension-soap.xml"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">import&nbsp;</span><span style="color: #FF0000; ">resource</span><span style="color: #0000FF; ">="classpath:META-INF/cxf/cxf-servlet.xml"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;<br />
</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">context:annotation-config</span><span style="color: #0000FF; ">/&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">context:component-scan&nbsp;</span><span style="color: #FF0000; ">base-package</span><span style="color: #0000FF; ">="com.*.server.resource"</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">context:component-scan</span><span style="color: #0000FF; ">&gt;</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;登陆服务&nbsp;</span><span style="color: #008000; ">--&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">jaxws:endpoint&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="LoginService"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;implementor</span><span style="color: #0000FF; ">="com.*.ws.LoginService"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address</span><span style="color: #0000FF; ">="/ILoginService"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">jaxws:endpoint</span><span style="color: #0000ff; ">&gt;</span><br />
<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">beans</span><span style="color: #0000FF; ">&gt;</span></div>
<span style="font-family: 宋体; color: red; font-size: 12pt; ">则当前</span><span style="font-family: 'Courier New'; color: red; font-size: 12pt; ">CXF</span><span style="font-family: 宋体; color: red; font-size: 12pt; ">的访问路径为</span><span style="font-family: 'Courier New'; color: red; font-size: 12pt; "> http://url/projectname/services/ILoginService。<br /></span>而不是：<span style="font-family: 'Courier New'; font-size: 16px; ">http://url/projectname/ILoginService（注意添加services的路径）</span><img src ="http://www.blogjava.net/aoneany/aggbug/377621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2012-05-08 15:57 <a href="http://www.blogjava.net/aoneany/articles/377621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RCP中系统内置菜单使用</title><link>http://www.blogjava.net/aoneany/articles/371717.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Mon, 12 Mar 2012 05:27:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/371717.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/371717.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/371717.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/371717.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/371717.html</trackback:ping><description><![CDATA[&nbsp; &nbsp; &nbsp; 在eclipse-RCP中许多系统内置菜单，可以直接拿过来使用，如ActionFactory.CLOSE，ActionFactory.CLOSE_ALL，ActionFactory.SAVE，ActionFactory.SAVE_AS，ActionFactory.DELETE等。<br />可以通过saveAction = ActionFactory.SAVE.create(window);创建Action<br />&nbsp; &nbsp; &nbsp; 需要使用<div style="display: inline-block; "></div>ActionFactory.SAVE,<div style="display: inline-block; "></div>ActionFactory.SAVE_ALL变为可用状态，只需要设置编辑器EditorPart的isDirty()方法返回为true即可。<br />&nbsp; &nbsp; &nbsp; ActionFactory.SAVE_AS设置<div style="display: inline-block; "></div>编辑器EditorPart的iisSaveAsAllowed()为true即可。<br />&nbsp; &nbsp; &nbsp;但是<div style="display: inline-block; "></div>ActionFactory.DELETE需要其他视图或编辑器中注册全局的句柄，可以通过如下方法使用editorSite.getActionBars().setGlobalActionHandler(<div><div><span style="white-space:pre">				</span>ActionFactory.DELETE.getId(), new CustomAction(););</div></div><img src ="http://www.blogjava.net/aoneany/aggbug/371717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2012-03-12 13:27 <a href="http://www.blogjava.net/aoneany/articles/371717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RCP程序中设置编辑器关联ActionSet显示菜单栏的位置</title><link>http://www.blogjava.net/aoneany/articles/371412.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Wed, 07 Mar 2012 08:13:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/371412.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/371412.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/371412.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/371412.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/371412.html</trackback:ping><description><![CDATA[在RCP程序中，打开编辑器EditorPart，在菜单栏上需要显示相对应的菜单，在Menu的Path属性上可以设置显示的位置，刚开始时，输入其他值，菜单总是显示在最后面，变得非常的难看。查找了很久，后来发现必须要设置<span style="color: red; ">path=edit</span>属性，才能将EditorPart关联的菜单显示的中间。<img src ="http://www.blogjava.net/aoneany/aggbug/371412.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2012-03-07 16:13 <a href="http://www.blogjava.net/aoneany/articles/371412.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在CXF中如何传递抽象对象</title><link>http://www.blogjava.net/aoneany/articles/371010.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Wed, 29 Feb 2012 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/371010.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/371010.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/371010.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/371010.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/371010.html</trackback:ping><description><![CDATA[先定一个适配器类，继承XmlAdapter,可以将抽象类转换为可以识别的传输对象<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;UserTOAdapter&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;XmlAdapter</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">TO,&nbsp;User</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;User&nbsp;unmarshal(TO&nbsp;to)&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;(User)to;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;TO&nbsp;marshal(User&nbsp;user)&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;(TO)user;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}<br />
</span></div>
<div>在WebService接口中定义参数转换的方法，如下<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">@WebService<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">interface</span><span style="color: #000000; ">&nbsp;TypeConvert&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;@WebMethod<br />&nbsp;&nbsp;&nbsp;&nbsp;@XmlJavaTypeAdapter(UserTOAdapter.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;addUser(User&nbsp;user);<br />}</span></div><br /><br /></div><img src ="http://www.blogjava.net/aoneany/aggbug/371010.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2012-02-29 16:29 <a href="http://www.blogjava.net/aoneany/articles/371010.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring的DispatcherServlet如何注册多个servlet的xml文件</title><link>http://www.blogjava.net/aoneany/articles/366846.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Tue, 20 Dec 2011 07:44:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/366846.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/366846.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/366846.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/366846.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/366846.html</trackback:ping><description><![CDATA[<p>在web.xml中，可以通过*号匹配多个-servlet.xml的文件。具体格式如下：</p>
<p>&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">&nbsp;&nbsp;&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 /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">test</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">org.springframework.web.servlet.DispatcherServlet</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">加载/WEB-INF/spring-mvc/目录下的所有XML作为Spring&nbsp;MVC的配置文件</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">contextConfigLocation</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/*-servlet.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&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 /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</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 /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">test</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">*.do</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span></div>
<p>表示加载/WEB-INF/下所有以-servlet.xml结尾的xml文件</p><img src ="http://www.blogjava.net/aoneany/aggbug/366846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2011-12-20 15:44 <a href="http://www.blogjava.net/aoneany/articles/366846.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring中通过代码注册bean</title><link>http://www.blogjava.net/aoneany/articles/365062.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Mon, 28 Nov 2011 14:24:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/365062.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/365062.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/365062.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/365062.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/365062.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><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;main(String[]&nbsp;args)&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_42_314_Open_Image" onclick="this.style.display='none'; Codehighlighter1_42_314_Open_Text.style.display='none'; Codehighlighter1_42_314_Closed_Image.style.display='inline'; Codehighlighter1_42_314_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_42_314_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_42_314_Closed_Text.style.display='none'; Codehighlighter1_42_314_Open_Image.style.display='inline'; Codehighlighter1_42_314_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_42_314_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_42_314_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;DefaultListableBeanFactory&nbsp;beanregistry</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DefaultListableBeanFactory();&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;BeanFactory&nbsp;container</span><span style="color: #000000">=</span><span style="color: #000000">(BeanFactory)bindViaCode(beanRegistry);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;FXNewsProvider&nbsp;newsProvider</span><span style="color: #000000">=</span><span style="color: #000000">(FXNewsProvider)container.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">djNewsProvider</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;newsProvider.getAndPersistNews();&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;BeanFactory&nbsp;bindViaCode(BeanDefinitionRegistry&nbsp;registry)&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_393_1508_Open_Image" onclick="this.style.display='none'; Codehighlighter1_393_1508_Open_Text.style.display='none'; Codehighlighter1_393_1508_Closed_Image.style.display='inline'; Codehighlighter1_393_1508_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_393_1508_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_393_1508_Closed_Text.style.display='none'; Codehighlighter1_393_1508_Open_Image.style.display='inline'; Codehighlighter1_393_1508_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_393_1508_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_393_1508_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;AbstractBeanDefinition&nbsp;newsProvider</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RootBeanDefintion(FXNewsProvider.</span><span style="color: #0000ff">class</span><span style="color: #000000">,</span><span style="color: #0000ff">true</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />AbstractBeanDefinition&nbsp;newsListener</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RootBeanDefintion(DowJonesNewListerner.</span><span style="color: #0000ff">class</span><span style="color: #000000">,</span><span style="color: #0000ff">true</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />AbstractBeanDefinition&nbsp;newsPersister</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RootBeanDefintion(DowJonesNewPersister.</span><span style="color: #0000ff">class</span><span style="color: #000000">,</span><span style="color: #0000ff">true</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">将bean定义到注册容器中&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">registry.registerBeanDefinition(</span><span style="color: #000000">"</span><span style="color: #000000">djNewsProvider</span><span style="color: #000000">"</span><span style="color: #000000">,newsProvider);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />registry.registerBeanDefinition(</span><span style="color: #000000">"</span><span style="color: #000000">djListener</span><span style="color: #000000">"</span><span style="color: #000000">,newsListener);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />registry.registerBeanDefinition(</span><span style="color: #000000">"</span><span style="color: #000000">djPersister</span><span style="color: #000000">"</span><span style="color: #000000">,newsPersister);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">指定依赖关系&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">通过构造函数方式注入&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">ConstructorArgumentValues&nbsp;argValues</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ConstructorArgumentValues();&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />argValues.addIndexedArgumentValue(</span><span style="color: #000000">0</span><span style="color: #000000">,newsListener);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />argValues.addIndexedArgumentValue(</span><span style="color: #000000">1</span><span style="color: #000000">,newsPresister);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />newsProvier.setConstructorArgumentValues(argValues);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">通过setter方式注入&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">MutablepropertyValues&nbsp;propertyValues</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MutablePropertyValues();&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />propertyValues.addPropertyValue(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ropertyValue(</span><span style="color: #000000">"</span><span style="color: #000000">newsListener</span><span style="color: #000000">"</span><span style="color: #000000">,newsListener));&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />propertyValues.addPropertyValue(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ropertyValue(</span><span style="color: #000000">"</span><span style="color: #000000">newsPresister</span><span style="color: #000000">"</span><span style="color: #000000">,newsPresister));&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />newsProvider.setPropertyValues(propertyValues);&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">绑定完成&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(BeanFactory)registry;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />}</span></div><img src ="http://www.blogjava.net/aoneany/aggbug/365062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2011-11-28 22:24 <a href="http://www.blogjava.net/aoneany/articles/365062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>位移进制运算</title><link>http://www.blogjava.net/aoneany/articles/348889.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Sat, 23 Apr 2011 13:58:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/348889.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/348889.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/348889.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/348889.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/348889.html</trackback:ping><description><![CDATA[<p>带符号右移 题：－15 &gt;&gt; 2 = -4</p>
<p>15原码: 　　00000000 00000000 00000000 00001111 //32位,二进制<br />
反码： 　　 11111111 11111111 11111111 11110000 //0变1,1变O<br />
补码： 　　 11111111 11111111 11111111 11110001 //最后位加1,-15二进制<br />
右移2位：　 11111111 11111111 11111111 11111100 //右边丢弃2位,前面30位保留,左边补1<br />
取反：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00000011 //0变1,1变O<br />
＋１:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3+1<br />
结果:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ＝－４ //负号保留,十进制</p>
<p><br />
带符号左移 题: 10 &lt;&lt; 2 = 40<br />
10 补码:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00001010 //32位,二进制<br />
左移2位:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00101000 //左边丢弃2位,右边补0<br />
结果:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40 //十进制</p>
<p>　</p>
<p>无符号右移 题：－4321 &gt;&gt;&gt; 30 = 3<br />
4321原码: 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00000000 00000000 00010000 11100011 //32位,二进制<br />
反码： 　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11111111 11111111 11101111 00011100 //0变1,1变O<br />
补码： 　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11111111 11111111 11101111 00011101 //最后位加1,-4321二进制<br />
无符号右移30位：　 00000000 00000000 00000000 00000011 //右边丢弃30位,前面二位保留,左边补0<br />
结果:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 //十进制</p>
<p><br />
&amp; 位逻辑与 题：44 &amp; 21 = 4<br />
44 补码:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00101100 //32位,二进制<br />
21 补码:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00010101 //32位,二进制<br />
&amp; 运算:&nbsp;&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00000100 //对应的两个二进制位均为1时 结果位才为1 否则为0<br />
结果:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 //十进制&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>| 位逻辑与 题：9 | 5 = 13<br />
9 补码:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00001001 //32位,二进制<br />
5 补码:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00000101 //32位,二进制<br />
| 运算:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00001101 //对应的二个二进制位有一个为1时，结果位就为1<br />
结果:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13 //十进制 </p>
<p><br />
^ 位逻辑异或 题: 9 ^ 5 = 12<br />
9 补码:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00001001 //32位,二进制<br />
5 补码:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00000101 //32位,二进制<br />
| 运算:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00001100 //对应的二进制位相异时，结果为1<br />
结果:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 //十进制</p>
<p><br />
~ 位逻辑反 题: ~9 = -10<br />
9 补码:&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00001001 //32位,二进制<br />
~ 运算:&nbsp;&nbsp;&nbsp; 11111111 11111111 11111111 11110110 //最高位为1表示为一个负数,则进行取反加1<br />
取反:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00000000 00000000 00000000 00001001 //32位,二进制<br />
＋１:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9+1 //32位,二进制<br />
结果:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -10 //十进制</p>
<p><br />
在计算机系统中，数值一律用补码来表示（存储）。<br />
主要原因：使用补码，可以将符号位和其它位统一处理；同时，减法也可按加法来处理。另外，两个用补<br />
码表示的数相加时，如果最高位（符号位）有进位，则进位被舍弃。<br />
补码与原码的转换过程几乎是相同的。<br />
数值的补码表示也分两种情况：<br />
（1）正数的补码：与原码相同。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如，+9的补码是00001001。<br />
（2）负数的补码：符号位为1，其余位为该数绝对值的原码按位取反；然后整个数加1。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如，-7的补码：因为是负数，则符号位为&#8220;1&#8221;,整个为10000111；其余7位为-7的绝对值+7的原码<br />
&nbsp;&nbsp;&nbsp;&nbsp; 0000111按位取反为1111000；再加1，所以-7的补码是11111001。<br />
已知一个数的补码，求原码的操作分两种情况：<br />
（1）如果补码的符号位为&#8220;0&#8221;，表示是一个正数，所以补码就是该数的原码。<br />
（2）如果补码的符号位为&#8220;1&#8221;，表示是一个负数，求原码的操作可以是：符号位为1，其余各位取反，然后再整个数加1。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 例如，已知一个补码为11111001，则原码是10000111（-7）：因为符号位为&#8220;1&#8221;，表示是一个负数，所以该位不变，仍为&#8220;1&#8221;；其余7位1111001取反后为0000110；再加1，所以是10000111。 </p>
<p>&nbsp;</p>
<p>转载：<a href="http://blog.csdn.net/zjp8023/archive/2009/05/29/4224121.aspx">http://blog.csdn.net/zjp8023/archive/2009/05/29/4224121.aspx</a></p>
<img src ="http://www.blogjava.net/aoneany/aggbug/348889.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2011-04-23 21:58 <a href="http://www.blogjava.net/aoneany/articles/348889.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>您的小数点到哪里去了</title><link>http://www.blogjava.net/aoneany/articles/348753.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Thu, 21 Apr 2011 15:36:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/348753.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/348753.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/348753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/348753.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/348753.html</trackback:ping><description><![CDATA[<p>Java 语言支持两种基本的浮点类型： <code>float</code> 和 <code>double</code> ，以及与它们对应的包装类 <code>Float</code> 和 <code>Double</code> 。它们都依据 IEEE 754 标准，该标准为 32 位浮点和 64 位双精度浮点二进制小数定义了二进制标准。 </p>
<p>IEEE 754 用科学记数法以底数为 2 的小数来表示浮点数。IEEE 浮点数用 1 位表示数字的符号，用 8 位来表示指数，用 23 位来表示尾数，即小数部分。作为有符号整数的指数可以有正负之分。小数部分用二进制（底数 2）小数来表示，这意味着最高位对应着值 ?(2 <sup>-1</sup>)，第二位对应着 ?(2 <sup>-2</sup>)，依此类推。对于双精度浮点数，用 11 位表示指数，52 位表示尾数。IEEE 浮点值的格式如图 1 所示。 </p>
<br />
<a name="IDADA0PE"><strong>图 1. IEEE 754 浮点数的格式 </strong></a><br />
<img alt="图 1. IEEE 754 浮点数的格式" src="http://www.ibm.com/developerworks/cn/java/j-jtp0114/float.gif" width="579" height="177" /> <br />
<p>因为用科学记数法可以有多种方式来表示给定数字，所以要规范化浮点数，以便用底数为 2 并且小数点左边为 1 的小数来表示，按照需要调节指数就可以得到所需的数字。所以，例如，数 1.25 可以表示为尾数为 1.01，指数为 0： <code>(-1) <sup>0</sup>*1.01 <sub>2</sub>*2 <sup>0</sup> </code></p>
<p>数 10.0 可以表示为尾数为 1.01，指数为 3： <code>(-1) <sup>0</sup>*1.01 <sub>2</sub>*2 <sup>3</sup> </code></p>
<p><code></code>&nbsp;</p>
<p>一个十进制数能否用二进制浮点数精确表示，关键在于小数部分。我们来看一个最简单的小数<img title="（转）IEEE754" border="0" alt="（转）IEEE754" src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image016.gif" width="44" height="24" real_src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image016.gif" />能否精确表示。按照乘以2取整数位的方法，有：</p>
<p><img title="（转）IEEE754" border="0" alt="（转）IEEE754" src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image018.gif" width="268" height="243" real_src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image018.gif" /></p>
<p>得到一个无限循环的二进制小数<img title="（转）IEEE754" border="0" alt="（转）IEEE754" src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image020.gif" width="177" height="24" real_src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image020.gif" />，用有限位无法表示无限循环小数，因此，<img title="（转）IEEE754" border="0" alt="（转）IEEE754" src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image016%5B1%5D.gif" width="44" height="24" real_src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image016%5B1%5D.gif" />无法用IEEE 754浮点数精确表示。从中也可以看到：由于</p>
<p><img title="（转）IEEE754" border="0" alt="（转）IEEE754" src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image023.gif" width="375" height="48" real_src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image023.gif" />，</p>
<p>这四个数也无法精确表示。同理：</p>
<p><img title="（转）IEEE754" border="0" alt="（转）IEEE754" src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image025.gif" width="272" height="73" real_src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image025.gif" /></p>
<p>也无法用IEEE 754浮点数精确表示。</p>
<p>在以0.1~0.9结尾的9个小数中，只有0.5可以精确表示：（如）<img title="（转）IEEE754" border="0" alt="（转）IEEE754" src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image029.gif" width="101" height="24" real_src="http://www.cnblogs.com/images/cnblogs_com/bossin/WindowsLiveWriter/IEEE754_B489/clip_image029.gif" />，而其他均无法进行精确转换。</p>
<img src ="http://www.blogjava.net/aoneany/aggbug/348753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2011-04-21 23:36 <a href="http://www.blogjava.net/aoneany/articles/348753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>遍历查找性能测试报告（Map,Array,RBTree）</title><link>http://www.blogjava.net/aoneany/articles/348346.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Fri, 15 Apr 2011 05:39:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/348346.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/348346.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/348346.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/348346.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/348346.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-family: 宋体">&nbsp; </p>
<p><span style="font-family: 宋体">上次只测试查询的性能，而且都是在最优的情况下进行，没有考虑条他情况，这次重新修改了测试用例，把整个测试的各个过程描述出来（加载，排序，查找的效率）。</span></p>
<p><strong><span style="font-family: 宋体">场景：</span></strong><span style="font-family: 宋体">随机生成</span>5<span style="font-family: 宋体">百万条不同的记录，而每条记录不存在相同的情况。现在将这</span>5<span style="font-family: 宋体">百万条记录在不同的情况下进行测试。测试结果如下</span></p>
<p>1<span style="font-family: 宋体">、</span>5<span style="font-family: 宋体">百万条记录，总共查询</span>50<span style="font-family: 宋体">万次（查询前</span>50<span style="font-family: 宋体">万条记录）</span></p>
<p><span style="font-family: 宋体">数组性能测试加载花费</span>:<strong><span style="color: red">6.11</strong></span><span style="font-family: 宋体">秒</span></p>
<p><span style="font-family: 宋体">数组性能测试排序花费</span>:<strong><span style="color: red">18.313</strong></span><span style="font-family: 宋体">秒</span></p>
<p><span style="font-family: 宋体">数组性能测试查找花费</span>:<strong><span style="color: red">3.297</strong></span><span style="font-family: 宋体">秒</span></p>
<p><span style="font-family: 宋体">数组性能测试共花费</span>:<strong><span style="color: red">27.72</strong></span><span style="font-family: 宋体">秒</span></p>
<p><span style="font-family: 宋体">数组性能测试总共占</span>:<strong><span style="color: red">100005888</strong> </span><span style="font-family: 宋体">字节</span></p>
<p>RBTree<span style="font-family: 宋体">性能测试加载花费</span>:<strong><span style="color: red">53.644</strong></span><span style="font-family: 宋体">秒</span></p>
<p>RBTree<span style="font-family: 宋体">性能测试查找共花费</span>:<strong><span style="color: red">2.86</strong></span><span style="font-family: 宋体">秒</span></p>
<p>RBTree<span style="font-family: 宋体">性能测试共花费</span>:<strong><span style="color: red">56.504</strong></span><span style="font-family: 宋体">秒</span></p>
<p>RBTREE<span style="font-family: 宋体">性能测试共占用</span>:<strong><span style="color: red">240004864</strong> </span><span style="font-family: 宋体">字节</span></p>
<p>MAP<span style="font-family: 宋体">性能测试加载花费</span>:<strong><span style="color: red">7.282</strong></span><span style="font-family: 宋体">秒</span></p>
<p>MAP<span style="font-family: 宋体">性能测试查找花费</span>:<strong><span style="color: red">0.11</strong></span><span style="font-family: 宋体">秒</span></p>
<p>MAP<span style="font-family: 宋体">性能测试共花费</span>:<strong><span style="color: red">7.392</strong></span><span style="font-family: 宋体">秒</span></p>
<p>MAP<span style="font-family: 宋体">性能测试</span> <span style="font-family: 宋体">共占用</span>:<strong><span style="color: red">173554048</strong> </span><span style="font-family: 宋体">字节</span></p>
<p>2<span style="font-family: 宋体">、</span>5<span style="font-family: 宋体">百万条记录，总共查询</span>5<span style="font-family: 宋体">百万次（每条记录查询一次）</span></p>
<p><span style="font-family: 宋体">数组性能测试加载花费</span>:<strong><span style="color: red">6.078</strong></span><span style="font-family: 宋体">秒</span></p>
<p><span style="font-family: 宋体">数组性能测试排序花费</span>:<strong><span style="color: red">17.642</strong></span><span style="font-family: 宋体">秒</span></p>
<p><span style="font-family: 宋体">数组性能测试查找花费</span>:<strong><span style="color: red">33.049</strong></span><span style="font-family: 宋体">秒</span></p>
<p><span style="font-family: 宋体">数组性能测试共花费</span>:<strong><span style="color: red">56.769</strong></span><span style="font-family: 宋体">秒</span></p>
<p><span style="font-family: 宋体">数组性能测试总共占用</span> = <strong><span style="color: red">100005552</strong> </span><span style="font-family: 宋体">字节</span></p>
<p>RBTree<span style="font-family: 宋体">性能测试加载花费</span>:<strong><span style="color: red">54.8</strong></span><span style="font-family: 宋体">秒</span></p>
<p>RBTree<span style="font-family: 宋体">性能测试查找共花费</span>:<strong><span style="color: red">34.581</strong></span><span style="font-family: 宋体">秒</span></p>
<p>RBTree<span style="font-family: 宋体">性能测试共花费</span>:<strong><span style="color: red">89.381</strong></span><span style="font-family: 宋体">秒</span></p>
<p>RBTREE<span style="font-family: 宋体">性能测试共占用</span> = <strong><span style="color: red">240005024</strong> </span><span style="font-family: 宋体">字节</span></p>
<p>MAP<span style="font-family: 宋体">性能测试加载花费</span>:<strong><span style="color: red">6.501</strong></span><span style="font-family: 宋体">秒</span></p>
<p>MAP<span style="font-family: 宋体">性能测试查找花费</span>:<strong><span style="color: red">0.937</strong></span><span style="font-family: 宋体">秒</span></p>
<p>MAP<span style="font-family: 宋体">性能测试共花费</span>:<strong><span style="color: red">7.438</strong></span><span style="font-family: 宋体">秒</span></p>
<p>MAP<span style="font-family: 宋体">性能测试</span> <span style="font-family: 宋体">共占用</span>=<strong><span style="color: red">173553888</strong> </span><span style="font-family: 宋体">字节</span></p>
<p>3<span style="font-family: 宋体">、</span>5<span style="font-family: 宋体">百万条记录，总共查询</span>5<span style="font-family: 宋体">千万次（每条数据查询</span>10<span style="font-family: 宋体">次）</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试加载花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">6.11</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试排序花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">17.861</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试查找花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">331.224</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试共花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">355.195</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试总共占用</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">99990456</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">字节</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">RBTree</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试加载花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">53.097</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">RBTree</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试查找共花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">345.866</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">RBTree</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试共花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">398.963</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">RBTREE</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试共占用</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> = </span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">240005248 </span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">字节</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">MAP</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试加载花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">7.235</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">MAP</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试查找花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">9.375</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">MAP</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试共花费</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">16.61</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
<p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">MAP</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试</span><span style="font-size: 10pt; color: black; font-family: 宋体">共占用</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">:</span><strong><span style="font-size: 10pt; color: red; font-family: 'Courier New'">173554048</span></strong><span style="font-size: 10pt; color: black; font-family: 宋体">字节<br />
<br />
测试文件地址：&nbsp; <a href="/Files/aoneany/search2.rar">/Files/aoneany/search2.rar</a><br />
<br />
================================================================<br />
&nbsp;&nbsp;&nbsp; </p>
<p class="MsoNormal"><span style="color: #1f497d; font-family: 宋体">前面的测试算法中，有一个地方偷懒（直接使用</span><span lang="EN-US" style="color: #1f497d">String.CompareTo</span><span style="color: #1f497d; font-family: 宋体">方法进行比较）导致查询效率很差，现在对其进行优化，测试后的数据为：</span><span lang="EN-US" style="color: #1f497d"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color: #1f497d"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">5</span><span style="font-family: 宋体">百万条记录，总共查询</span><span lang="EN-US">5</span><span style="font-family: 宋体">百万次（每条记录查询一次）</span><span lang="EN-US" style="color: #1f497d"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试加载花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<span style="color: red"><strong>1.016</strong></span></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试排序花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<span style="color: red"><strong>14.485</strong></span></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试查找花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<span style="color: red"><strong>0.703</strong></span></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体">数组性能测试共花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<strong style="color: red">16.204</strong></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">RBTree</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试加载花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<strong style="color: red">20.705</strong></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">RBTree</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试查找共花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<strong style="color: red">3.75</strong></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">RBTree</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试共花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<strong style="color: red">24.455</strong></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">MAP</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试加载花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<strong style="color: red">3.875</strong></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">MAP</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试查找花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<strong style="color: red">1.516</strong></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">MAP</span><span style="font-size: 10pt; color: black; font-family: 宋体">性能测试共花费</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">:<strong style="color: red">5.391</strong></span><span style="font-size: 10pt; color: black; font-family: 宋体">秒</span></p>
</span></span>
<img src ="http://www.blogjava.net/aoneany/aggbug/348346.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2011-04-15 13:39 <a href="http://www.blogjava.net/aoneany/articles/348346.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse部署Tomcat服务时需要注意的地方</title><link>http://www.blogjava.net/aoneany/articles/343722.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Fri, 28 Jan 2011 10:01:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/343722.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/343722.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/343722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/343722.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/343722.html</trackback:ping><description><![CDATA[<p>在classpath的user Entities节点下添加tomcat的jar包时，需要引入bin目录下的tomcat-juli.jar包，或lib目录下所有的jar包。</p>
<img src ="http://www.blogjava.net/aoneany/aggbug/343722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2011-01-28 18:01 <a href="http://www.blogjava.net/aoneany/articles/343722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符串-Thinking in Java读书笔记</title><link>http://www.blogjava.net/aoneany/articles/304020.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Sat, 28 Nov 2009 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/304020.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/304020.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/304020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/304020.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/304020.html</trackback:ping><description><![CDATA[<p>String对象是不可变的</p>
<p>Scanner扫描字符串对象。</p>
<p>备注：</p>
<p>在java编译好的class文件中,有个区域称为Constant Pool,他是一个由数组组成的表,类型<br />
为cp_info constant_pool[],用来存储程序中使用的各种常量,包括Class<span style="color: rgb(0,0,0)">/</span><span style="color: rgb(0,0,0)">String</span><span style="color: rgb(0,0,0)">/</span><span style="color: rgb(0,0,0)">Integer等各<br />
种基本Java数据类型,详情参见The Java Virtual Machine Specification </span><span style="color: rgb(0,0,0)">4</span><span style="color: rgb(0,0,0)">.4章节.<br />
<br />
对于Constant Pool,表的基本通用结构为:<br />
cp_info {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u1 tag;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u1 info[];<br />
}<br />
<br />
tag是一个数字,用来表示存储的常量的类型,例如8表示String类型,5表示Long类型,info[]根据<br />
类型码tag的不同会发生相应变化.<br />
对于String类型,表的结构为:<br />
CONSTANT_String_info {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u1 tag;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u2 string_index;<br />
}<br />
tag固定为8,string_index是字符串内容信息,类型为:<br />
CONSTANT_Utf8_info {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u1 tag;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u2 length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u1 bytes[length];<br />
}<br />
tag固定为1,length为字符串的长度,bytes[length]为字符串的内容.<br />
<br />
<strong>代码样例<br />
</strong>(以下代码在jdk6中编译)<br />
为了详细理解Constant Pool的结构,我们参看一些代码:<br />
&nbsp;&nbsp;&nbsp; String s1 </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss111</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">;<br />
&nbsp;&nbsp;&nbsp; String s2 </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss222</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">;<br />
&nbsp;&nbsp;&nbsp; System.out.println(s1 </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> s2);<br />
由于</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss111</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">和</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss222</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">都是字符串常量,在编译期就已经创建好了存储在class文件中.<br />
在编译后的class文件中会存在这2个常量的对应表示:<br />
</span><span style="color: rgb(0,0,0)">08</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">11</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">01</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">06</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">31</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">31</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">31</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">08</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">13</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">01</span><span style="color: rgb(0,0,0)"> ; ......sss111....<br />
</span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">06</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">32</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">32</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">32</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; ..sss222<br />
<br />
根据上面说的String常量结构,我们分析一下<br />
开始的08为CONSTANT_String_info结构中的tag,而11应该是它的相对引用,01为<br />
CONSTANT_Utf8_info的tag,06为对应字符串的长度,</span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">31</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">31</span><span style="color: rgb(0,0,0)"> 31为字符串对<br />
应的编码,接着分析,会发现后面的是对应</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss222</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">的存储结构.<br />
<br />
经过上面分析,我们知道了11和13是两个字符串的相对引用,就可以修改class文件<br />
来修改打印的内容,把class文件中的<br />
</span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> 6E </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">04</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">03</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">24</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">12</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">10</span><span style="color: rgb(0,0,0)"> 4C </span><span style="color: rgb(0,0,0)">12</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">12</span><span style="color: rgb(0,0,0)"> 4D<br />
改成<br />
</span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> 6E </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">04</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">03</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">24</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">12</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">10</span><span style="color: rgb(0,0,0)"> 4C </span><span style="color: rgb(0,0,0)">12</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">10</span><span style="color: rgb(0,0,0)"> 4D<br />
程序就会输出sss111 sss111,而不是和原程序一样输出sss111 sss222,因为我<br />
们把对</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss222</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">的相对引用12改成了对</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss111</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">的相对引用10.<br />
<br />
</span><span style="color: rgb(0,0,0)">------------</span><span style="color: rgb(0,0,0)">分割线<br />
</span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">class</span><span style="color: rgb(0,0,0)"> Test {<br />
&nbsp;&nbsp;&nbsp; </span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">static</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)"> main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s1 </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss111</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s2 </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss111</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">;<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
在上面程序中存在2个相同的常量</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss111</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">,对于n个值相同的String常量,在Constant Pool中<br />
只会创建一个,所以在编译好的class文件中,我们只能找到一个对</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">sss111</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">的表示:<br />
000000abh: </span><span style="color: rgb(0,0,0)">08</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">11</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">01</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">00</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">06</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">73</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">31</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">31</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">31</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; ......sss111<br />
<br />
在程序执行的时候,Constant Pool会储存在Method Area,而不是heap中.<br />
<br />
另外,对于</span><span style="color: rgb(0,0,0)">""</span><span style="color: rgb(0,0,0)">内容为空的字符串常量,会创建一个长度为0,内容为空的字符串放到Constant Pool中,<br />
而且Constant Pool在运行期是可以动态扩展的.<br />
<br />
<strong>关于String类的说明<br />
<br />
</strong></span><span style="color: rgb(0,0,0)">1</span><span style="color: rgb(0,0,0)">.String使用private </span><span style="color: rgb(0,0,255)">final</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">char</span><span style="color: rgb(0,0,0)"> value[]来实现字符串的存储,也就是说String对象创建之后,就不能<br />
再修改此对象中存储的字符串内容,就是因为如此,才说String类型是不可变的(immutable).<br />
<br />
</span><span style="color: rgb(0,0,0)">2</span><span style="color: rgb(0,0,0)">.String类有一个特殊的创建方法,就是使用</span><span style="color: rgb(0,0,0)">""</span><span style="color: rgb(0,0,0)">双引号来创建.例如new String(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">i am</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">)实际创建了2个<br />
String对象,一个是</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">i am</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">通过</span><span style="color: rgb(0,0,0)">""</span><span style="color: rgb(0,0,0)">双引号创建的,另一个是通过new创建的.只不过他们创建的时期不同,<br />
一个是编译期,一个是运行期</span><span style="color: rgb(0,0,0)">!</span><span style="color: rgb(0,0,0)"><br />
<br />
</span><span style="color: rgb(0,0,0)">3</span><span style="color: rgb(0,0,0)">.java对String类型重载了</span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)">操作符,可以直接使用</span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)">对两个字符串进行连接.<br />
<br />
</span><span style="color: rgb(0,0,0)">4</span><span style="color: rgb(0,0,0)">.运行期调用String类的intern()方法可以向String Pool中动态添加对象.<br />
<br />
<strong>String的创建方法</strong><br />
<br />
一般有如下几种<br />
</span><span style="color: rgb(0,0,0)">1</span><span style="color: rgb(0,0,0)">.直接使用</span><span style="color: rgb(0,0,0)">""</span><span style="color: rgb(0,0,0)">引号创建.<br />
</span><span style="color: rgb(0,0,0)">2</span><span style="color: rgb(0,0,0)">.使用new String()创建.<br />
</span><span style="color: rgb(0,0,0)">3</span><span style="color: rgb(0,0,0)">.使用new String(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">someString</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">)创建以及其他的一些重载构造函数创建.<br />
</span><span style="color: rgb(0,0,0)">4</span><span style="color: rgb(0,0,0)">.使用重载的字符串连接操作符</span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)">创建.</span></p>
<p><span style="color: rgb(0,0,0)"><strong>面试题:</strong></span></p>
<p><span style="color: rgb(0,0,0)">String s1 <span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">new</span><span style="color: rgb(0,0,0)"> String(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">s1</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">) ;<br />
String s2 </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">new</span><span style="color: rgb(0,0,0)"> String(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">s1</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">) ;<br />
上面创建了几个String对象</span><span style="color: rgb(0,0,0)">?</span><span style="color: rgb(0,0,0)"><br />
答案:3个 ,编译期Constant Pool中创建1个,运行期heap中创建2个.</span></p>
<p><br />
</p>
</span>
<img src ="http://www.blogjava.net/aoneany/aggbug/304020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-11-28 13:54 <a href="http://www.blogjava.net/aoneany/articles/304020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java定位打印（如：超市，票据打印）</title><link>http://www.blogjava.net/aoneany/articles/287601.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Tue, 21 Jul 2009 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/287601.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/287601.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/287601.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/287601.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/287601.html</trackback:ping><description><![CDATA[<p>Java自从问世以来在各方面发展迅速，但是一直以来，打印输出是java最弱的方面。事实上，java1.0不支持任何打印功能。Java1.1在 java.awt包里包含了一个叫做PrintJob的类，但是这个类提供的打印功能十分粗糙和不可靠。当java1.2问世，它围绕 PrinterJob设计了一个完整独立的打印机制（叫做java2D printing API），并且在java.awt.print包里定义了一些新的类和接口。这些使得基于PrintJob打印机制（就是AWT printing）基本荒废，虽然PrintJob从未被抨击而且至少在这篇文章里仍然是一个提供技术的类。 </p>
<p>　　在J2SE1.3里当PrintJob的功能扩展到可以通过在java.awt包里的JobAttributes 和PageAttributes两个类设定工程和页面的属性时发生了一些额外的改变。随着J2SE1.3的发布，打印功能相应的得到了完善；但是在混合使用这两种完全不同的打印机制的时候仍然存在一些问题。比如，这两种机制使用java.awt.Graphics这个类的一个接口来展现打印内容，意味着所有要打印的东西都必须用一张图片表示。另外，完善的PrintJob提供了很有限的工程相关属性的设置；这两种机制都没有办法通过程序来选择目标打印机。 </p>
<p>　　Java打印最大的改变来自于J2SE1.4的发布带来的Java打印服务API。这个第三代Java打印支持接口突破了先前提到的局限性。因为新的API就是以前两种旧的打印机制定义的功能函数的一个父集。 </p>
<p>下面是我通过这些API写的定位打印示例代码，希望对用java实现打印的朋友有一定的帮助！ <br />
在CentOS4.4，jdk1.6下测试通过。 </p>
<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">import</span><span style="color: #000000">&nbsp;java.awt.Color;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Font;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Graphics;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.Graphics2D;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.print.PageFormat;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.print.Printable;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.print.PrinterException;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.Doc;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.DocFlavor;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.DocPrintJob;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.PrintException;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.PrintService;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.PrintServiceLookup;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.SimpleDoc;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.attribute.DocAttributeSet;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.attribute.HashDocAttributeSet;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.attribute.HashPrintRequestAttributeSet;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.attribute.PrintRequestAttributeSet;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.print.attribute.standard.MediaSizeName;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.JOptionPane;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_746_799_Open_Image" onclick="this.style.display='none'; Codehighlighter1_746_799_Open_Text.style.display='none'; Codehighlighter1_746_799_Closed_Image.style.display='inline'; Codehighlighter1_746_799_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_746_799_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_746_799_Closed_Text.style.display='none'; Codehighlighter1_746_799_Open_Image.style.display='inline'; Codehighlighter1_746_799_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_746_799_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_746_799_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />*&nbsp;java定位打印，把打印内容打到指定的地方。&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />*&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />*&nbsp;</span><span style="color: #808080">@author</span><span style="color: #008000">&nbsp;lyb&nbsp;<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="" /></span><span style="color: #008000">*/</span></span><span style="color: #000000">&nbsp;<br />
<img id="Codehighlighter1_848_3870_Open_Image" onclick="this.style.display='none'; Codehighlighter1_848_3870_Open_Text.style.display='none'; Codehighlighter1_848_3870_Closed_Image.style.display='inline'; Codehighlighter1_848_3870_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_848_3870_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_848_3870_Closed_Text.style.display='none'; Codehighlighter1_848_3870_Open_Image.style.display='inline'; Codehighlighter1_848_3870_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;LocatePrint&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;Printable&nbsp;</span><span id="Codehighlighter1_848_3870_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_848_3870_Open_Text"><span style="color: #000000">{&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">int</span><span style="color: #000000">&nbsp;PAGES&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><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;String&nbsp;printStr;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_915_1037_Open_Image" onclick="this.style.display='none'; Codehighlighter1_915_1037_Open_Text.style.display='none'; Codehighlighter1_915_1037_Closed_Image.style.display='inline'; Codehighlighter1_915_1037_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_915_1037_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_915_1037_Closed_Text.style.display='none'; Codehighlighter1_915_1037_Open_Image.style.display='inline'; Codehighlighter1_915_1037_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_915_1037_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_915_1037_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Graphic指明打印的图形环境；PageFormat指明打印页格式（页面大小以点为计量单位，&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;1点为1英寸的1/72，1英寸为25.4毫米。A4纸大致为595&#215;842点）；page指明页号&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.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">int</span><span style="color: #000000">&nbsp;print(Graphics&nbsp;gp,&nbsp;PageFormat&nbsp;pf,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;page)&nbsp;<br />
<img id="Codehighlighter1_1136_2367_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1136_2367_Open_Text.style.display='none'; Codehighlighter1_1136_2367_Closed_Image.style.display='inline'; Codehighlighter1_1136_2367_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1136_2367_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1136_2367_Closed_Text.style.display='none'; Codehighlighter1_1136_2367_Open_Image.style.display='inline'; Codehighlighter1_1136_2367_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;PrinterException&nbsp;</span><span id="Codehighlighter1_1136_2367_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_1136_2367_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics2D&nbsp;g2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Graphics2D)&nbsp;gp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g2.setPaint(Color.black);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置打印颜色为黑色&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(page&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;PAGES)&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;当打印页号大于需要打印的总页数时，打印工作结束&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;Printable.NO_SUCH_PAGE;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g2.translate(pf.getImageableX(),&nbsp;pf.getImageableY());</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;转换坐标，确定打印边界&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Font&nbsp;font&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Font(</span><span style="color: #000000">"</span><span style="color: #000000">宋体</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;Font.PLAIN,&nbsp;</span><span style="color: #000000">24</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;创建字体&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g2.setFont(font);&nbsp;<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: #008000">//</span><span style="color: #008000">&nbsp;打印当前页文本&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;printFontCount&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;printStr.length();</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;打印字数&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;printFontSize&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;font.getSize();</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Font&nbsp;的磅值大小&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></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;printX&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">595</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;给定字符点阵，X页面正中&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></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;printY&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">842</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;给定字符点阵，Y页面正中&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></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;printMX&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;printX&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;(printFontCount&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;printFontSize&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;打印到正中间&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></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;printMY&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;printY&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;printFontSize&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;打印到正中间&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g2.drawString(printStr,&nbsp;printMX,&nbsp;printMY);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;具体打印每一行文本，同时走纸移位&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g2.drawString(printStr,&nbsp;printMX&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;printFontSize&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;printFontCount,&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printMY&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;printFontSize);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;具体打印每一行文本，同时走纸移位&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g2.drawString(printStr,&nbsp;printMX&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;printFontSize&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;printFontCount,&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printMY&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;printFontSize);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;具体打印每一行文本，同时走纸移位&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g2.drawString(printStr,&nbsp;printMX,&nbsp;printMY&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;printFontSize&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;具体打印每一行文本，同时走纸移位&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;Printable.PAGE_EXISTS;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;存在打印页时，继续打印工作&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;打印内容到指定位置&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2420_3739_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2420_3739_Open_Text.style.display='none'; Codehighlighter1_2420_3739_Closed_Image.style.display='inline'; Codehighlighter1_2420_3739_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2420_3739_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2420_3739_Closed_Text.style.display='none'; Codehighlighter1_2420_3739_Open_Image.style.display='inline'; Codehighlighter1_2420_3739_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&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;printContent()&nbsp;</span><span id="Codehighlighter1_2420_3739_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_2420_3739_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printStr&nbsp;</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">"</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;获取需要打印的目标文本&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(printStr&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;printStr.length()&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;当打印内容不为空时&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2544_3449_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2544_3449_Open_Text.style.display='none'; Codehighlighter1_2544_3449_Closed_Image.style.display='inline'; Codehighlighter1_2544_3449_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2544_3449_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2544_3449_Closed_Text.style.display='none'; Codehighlighter1_2544_3449_Open_Image.style.display='inline'; Codehighlighter1_2544_3449_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2544_3449_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_2544_3449_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGES&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;获取打印总页数&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;指定打印输出格式&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocFlavor&nbsp;flavor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DocFlavor.SERVICE_FORMATTED.PRINTABLE;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;定位默认的打印服务&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;printService&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;PrintServiceLookup&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lookupDefaultPrintService();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;创建打印作业&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocPrintJob&nbsp;job&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;printService.createPrintJob();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置打印属性&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintRequestAttributeSet&nbsp;pras&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HashPrintRequestAttributeSet();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置纸张大小,也可以新建MediaSize类来自定义大小&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pras.add(MediaSizeName.ISO_A4);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocAttributeSet&nbsp;das&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HashDocAttributeSet();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;指定打印内容&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Doc&nbsp;doc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleDoc(</span><span style="color: #0000ff">this</span><span style="color: #000000">,&nbsp;flavor,&nbsp;das);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;不显示打印对话框，直接进行打印工作&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_3286_3356_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3286_3356_Open_Text.style.display='none'; Codehighlighter1_3286_3356_Closed_Image.style.display='inline'; Codehighlighter1_3286_3356_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3286_3356_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3286_3356_Closed_Text.style.display='none'; Codehighlighter1_3286_3356_Open_Image.style.display='inline'; Codehighlighter1_3286_3356_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_3286_3356_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_3286_3356_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;job.print(doc,&nbsp;pras);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;进行每一页的具体打印操作&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_3384_3438_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3384_3438_Open_Text.style.display='none'; Codehighlighter1_3384_3438_Closed_Image.style.display='inline'; Codehighlighter1_3384_3438_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3384_3438_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3384_3438_Closed_Text.style.display='none'; Codehighlighter1_3384_3438_Open_Image.style.display='inline'; Codehighlighter1_3384_3438_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(PrintException&nbsp;pe)&nbsp;</span><span id="Codehighlighter1_3384_3438_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_3384_3438_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pe.printStackTrace();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img id="Codehighlighter1_3456_3732_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3456_3732_Open_Text.style.display='none'; Codehighlighter1_3456_3732_Closed_Image.style.display='inline'; Codehighlighter1_3456_3732_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3456_3732_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3456_3732_Closed_Text.style.display='none'; Codehighlighter1_3456_3732_Open_Image.style.display='inline'; Codehighlighter1_3456_3732_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_3456_3732_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_3456_3732_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;如果打印内容为空时，提示用户打印将取消&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JOptionPane.showConfirmDialog(</span><span style="color: #0000ff">null</span><span style="color: #000000">,&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">Sorry,&nbsp;Printer&nbsp;Job&nbsp;is&nbsp;Empty,&nbsp;Print&nbsp;Cancelled!</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">Empty</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;JOptionPane.DEFAULT_OPTION,&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JOptionPane.WARNING_MESSAGE);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_3786_3866_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3786_3866_Open_Text.style.display='none'; Codehighlighter1_3786_3866_Closed_Image.style.display='inline'; Codehighlighter1_3786_3866_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3786_3866_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3786_3866_Closed_Text.style.display='none'; Codehighlighter1_3786_3866_Open_Image.style.display='inline'; Codehighlighter1_3786_3866_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">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_3786_3866_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_3786_3866_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LocatePrint&nbsp;lp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;LocatePrint();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lp.printContent();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;</span></div>
<img src ="http://www.blogjava.net/aoneany/aggbug/287601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-07-21 11:25 <a href="http://www.blogjava.net/aoneany/articles/287601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最简单的web服务器代码(Java)</title><link>http://www.blogjava.net/aoneany/articles/283248.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Fri, 19 Jun 2009 08:36:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/283248.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/283248.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/283248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/283248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/283248.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HttpServer.javapackage&nbsp;htmlbrowser;import&nbsp;java.io.File;import&nbsp;java.io.FileInputStream;import&nbsp;java.io.FileOutputStream;import&nbsp;java.util.Properties;import&nbsp;jav...&nbsp;&nbsp;<a href='http://www.blogjava.net/aoneany/articles/283248.html'>阅读全文</a><img src ="http://www.blogjava.net/aoneany/aggbug/283248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-06-19 16:36 <a href="http://www.blogjava.net/aoneany/articles/283248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网上看到Jtable中revalidate的说法</title><link>http://www.blogjava.net/aoneany/articles/268577.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Fri, 01 May 2009 17:18:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/268577.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/268577.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/268577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/268577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/268577.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt">问题：在找资料的时候看见JTabel用了setModel方法后会加上一个revalidate方法，<br />
可我删了这个方法并没见有什么不同，请指点！</span></p>
<p><span style="font-size: 10pt">回答一:如果在application上有哪个component由于事件的触发而发生变化（比如，形状）的话，这个方法就是用来更新当前程序的界面用的，就相当于重画一下界面 </span></p>
<p><span style="font-size: 10pt">回答二:The original author comments, very clear:</span></p>
<div id="quote"><br />
<span style="font-size: 10pt">I added a revalidate to JTable in the case that the table structure<br />
changes (columns/rows added/removed). This is necessary, since such an<br />
operation changes the size parameters of the JTable. It makes JTable<br />
behave more nicely in JScrollPane in an app I have here.</span></div><img src ="http://www.blogjava.net/aoneany/aggbug/268577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-05-02 01:18 <a href="http://www.blogjava.net/aoneany/articles/268577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSpinner控制输入</title><link>http://www.blogjava.net/aoneany/articles/260124.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Mon, 16 Mar 2009 14:40:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/260124.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/260124.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/260124.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/260124.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/260124.html</trackback:ping><description><![CDATA[<p>最近用到JSpinner，但是不能控制用户输入。<br />
比如使用SpinnerNumberModel，虽然设置了min，max，但是还是可以输入超出范围的数值，还可以输入字母，这些都应该是屏蔽掉的。<br />
采用了下面的方法来解决：</p>
<p>&nbsp;&nbsp; JSpinner spinner = new JSpinner(new SpinnerNumberModel(value, min, max, 1));<br />
&nbsp;&nbsp; spinner.setBounds(x,y,width,height);<br />
&nbsp;&nbsp; // 控制输入<br />
&nbsp;&nbsp; JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner, "0");<br />
&nbsp;&nbsp; spinner.setEditor(editor);<br />
&nbsp;&nbsp; JFormattedTextField textField = ((JSpinner.NumberEditor) spinner.getEditor())<br />
&nbsp;&nbsp;&nbsp;&nbsp; .getTextField();<br />
&nbsp;&nbsp; textField.setEditable(true);<br />
&nbsp;&nbsp; DefaultFormatterFactory factory = (DefaultFormatterFactory) textField<br />
&nbsp;&nbsp;&nbsp;&nbsp; .getFormatterFactory();<br />
&nbsp;&nbsp; NumberFormatter formatter = (NumberFormatter) factory.getDefaultFormatter();<br />
&nbsp;&nbsp; formatter.setAllowsInvalid(false);<br />
&nbsp;&nbsp; add(spinner);<br />
&nbsp;<br />
这样输入就不可以输入字母了，因为设置了输入格式。超过范围的数值也是输入不进去的。<br />
其他的格式都应该是类似的吧，呵呵。<br />
只不过这里用的是NumberFormatter ，还有其他类型的。</p>
<p>&nbsp;</p>
<p>转载：<a href="http://yangke1120.spaces.live.com/blog/cns!77b62010246eabc6!168.entry">http://yangke1120.spaces.live.com/blog/cns!77b62010246eabc6!168.entry</a></p><img src ="http://www.blogjava.net/aoneany/aggbug/260124.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-03-16 22:40 <a href="http://www.blogjava.net/aoneany/articles/260124.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>长整型数字格式转换</title><link>http://www.blogjava.net/aoneany/articles/251915.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Mon, 19 Jan 2009 08:42:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/251915.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/251915.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/251915.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/251915.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/251915.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt"><span style="font-size: 8pt">我从数据库中取出一个数据（数据库中子段类型是number）41449579，但是我取出来要显示在jsp界面上是4.1449579E7，用什么方法可以转换成41449579显示出来啊？（转换成String格式可以,只要能显示出来就可以），求大家帮忙！&nbsp;</span></span></p>
<p><span style="color: #ff6600"><br />
<span style="font-size: 12pt"><span style="font-size: 8pt">如果是通过JDBC的话，在读取该字段时用getLong()来读取，或者用getObject()然后调用其toString()函数即可。&nbsp;&nbsp;&nbsp;<br />
如果是用Hibernate的话，在映射文件中将该字段映射成Long或Integer即可。</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 8pt; color: #ff00ff">new &nbsp; java.text.DecimalFormat("########").format(12345678)</span></span></p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/aoneany/aggbug/251915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-01-19 16:42 <a href="http://www.blogjava.net/aoneany/articles/251915.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POI错误“Unknown Ptg in Formula”解决办法</title><link>http://www.blogjava.net/aoneany/articles/250180.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Tue, 06 Jan 2009 13:36:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/250180.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/250180.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/250180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/250180.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/250180.html</trackback:ping><description><![CDATA[此错误出现的原因是Excel中有中文定义的名称或者公式
<p>将Excel中定义的名称改为English就可以了</p>
<img src ="http://www.blogjava.net/aoneany/aggbug/250180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-01-06 21:36 <a href="http://www.blogjava.net/aoneany/articles/250180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSpinner的数据表示方法 </title><link>http://www.blogjava.net/aoneany/articles/244913.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Sun, 07 Dec 2008 15:07:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/244913.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/244913.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/244913.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/244913.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/244913.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于项目需要以界面的形式表示带有小数点的数据，而且让用户可以输入数据而不失精度。开始并没有重视它，以为只要把需要填入JSpinner的数据格式化就可以。事实不是这样，结果JSpinner能够正确显示数据，但是当调整数据时精度就发生了错误，怎么办呢？到网上找找，找到的都是数据格式化的方案，对我没有用，也找了一些书籍，由于JSpinner只是一个小小的组件，没有很详细的介绍，看样子，想简单地依靠别人的帮助文档是不行了，需要看看JSpinner的源代码了。。。。。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 进入JSpinner的源代码，仔细分析了他的组成结构，发现JSpinner显示不同的内容，采用不同的模型，像SpinnerDateModel，SpinnerListModel，SpinnerNumberModel。于是我想只要对模型修改不就行吗？最终我解决了下面是简单的代码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSpinner spiner = new JSpinner();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int max ,min;//数据的最大最小小数点位数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DecimalFormat format = ((JSpinner.NumberEditor) spiner.getEditor()).getFormat();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format.setMaximumFractionDigits(max);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format.setMinimumFractionDigits(min);<br />
从上面代码看来非常简单，但是他确花费了我几个小时，希望能给有同样问题的人们有所帮助。最后还要感谢项目组另外一位同事的帮助。</p>
<p>转自:http://www.blogjava.net/hclown/articles/24383.html</p>
<img src ="http://www.blogjava.net/aoneany/aggbug/244913.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-12-07 23:07 <a href="http://www.blogjava.net/aoneany/articles/244913.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Wrong type at constant pool index 异常</title><link>http://www.blogjava.net/aoneany/articles/243990.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Tue, 02 Dec 2008 10:32:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/243990.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/243990.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/243990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/243990.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/243990.html</trackback:ping><description><![CDATA[<p>重装了机器和myeclipse，配置上以前的项目，启动myeclipse编译，但是却出现如下异常</p>
<p style="color: #ff0000">严重: Exception starting filter struts2<br />
java.lang.IllegalArgumentException: Wrong type at constant pool index<br />
&nbsp;at sun.reflect.ConstantPool.getClassAt0(Native Method)<br />
&nbsp;at sun.reflect.ConstantPool.getClassAt(Unknown Source)<br />
&nbsp;at sun.reflect.annotation.AnnotationParser.parseAnnotation(Unknown Source)<br />
&nbsp;at sun.reflect.annotation.AnnotationParser.parseAnnotations(Unknown Source)<br />
&nbsp;at java.lang.reflect.Method.declaredAnnotations(Unknown Source)<br />
&nbsp;at java.lang.reflect.Method.getAnnotation(Unknown Source)<br />
&nbsp;at java.lang.reflect.AccessibleObject.isAnnotationPresent(Unknown Source)<br />
&nbsp;at org.apache.catalina.util.DefaultAnnotationProcessor.processAnnotations(DefaultAnnotationProcessor.java:161)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:259)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:108)<br />
&nbsp;at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)<br />
&nbsp;at org.apache.catalina.core.StandardContext.start(StandardContext.java:4356)<br />
&nbsp;at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)<br />
&nbsp;at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)<br />
&nbsp;at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)<br />
&nbsp;at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)<br />
&nbsp;at org.apache.catalina.core.StandardService.start(StandardService.java:516)<br />
&nbsp;at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)<br />
&nbsp;at org.apache.catalina.startup.Catalina.start(Catalina.java:578)<br />
&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />
&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />
&nbsp;at java.lang.reflect.Method.invoke(Unknown Source)<br />
&nbsp;at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)<br />
&nbsp;at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)</p>
我把Myeclipse中tomcat下JDK配置改为jre6的版本，编译运行就没有出异常了，但是记得以前也是使用的1.5版本的，但是就没有出现这种异常，现在怎么又出现了，同样的JDK? <br />
要JDK1.5.0.0升级成1.5.0.11以上的版就可以了
<img src ="http://www.blogjava.net/aoneany/aggbug/243990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-12-02 18:32 <a href="http://www.blogjava.net/aoneany/articles/243990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>URL中文参数值乱码问题解决</title><link>http://www.blogjava.net/aoneany/articles/242211.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Mon, 24 Nov 2008 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/242211.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/242211.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/242211.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/242211.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/242211.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最近在做</span><span lang="EN-US">Infoportal</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">集成</span><span lang="EN-US">URL</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">地址遇到一个小小的问题，在</span><span lang="EN-US">URL</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">地址上如果包含有中文参数时，在浏览器地址上就会出现乱码，想到了可能需要把</span><span lang="EN-US">URL</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参数值转码，写了一段代码测试一下。但是发现有一个问题，就是用</span><span lang="EN-US">java</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字符串中的</span><span lang="EN-US">split</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当分割&#8220;？&#8221;时，直接报</span><u><span lang="EN-US" style="font-size: 10pt; color: navy; font-family: 'Courier New'; mso-font-kerning: 0pt">java.util.regex.PatternSyntaxException</span></u><span lang="EN-US" style="font-size: 10pt; color: red; font-family: 'Courier New'; mso-font-kerning: 0pt">: Dangling meta character '?' near index 0</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">异常，原来这个是转义字符，稍微修改了一下就好了</span>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">程序</span></p>
<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: #000000">String&nbsp;url</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">http://servername?country=中国</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;segment</span><span style="color: #000000">=</span><span style="color: #000000">url.split(</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/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;newUrl</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newUrl.append(segment[</span><span style="color: #000000">0</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">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;argStr</span><span style="color: #000000">=</span><span style="color: #000000">segment[</span><span style="color: #000000">1</span><span style="color: #000000">].split(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_234_584_Open_Image" onclick="this.style.display='none'; Codehighlighter1_234_584_Open_Text.style.display='none'; Codehighlighter1_234_584_Closed_Image.style.display='inline'; Codehighlighter1_234_584_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_234_584_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_234_584_Closed_Text.style.display='none'; Codehighlighter1_234_584_Open_Image.style.display='inline'; Codehighlighter1_234_584_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">argStr.length;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_234_584_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_234_584_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;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;args</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;argStr[i].split(</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/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(args</span><span style="color: #000000">==</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">args.length</span><span style="color: #000000">==</span><span style="color: #000000">0</span><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">continue</span><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;&nbsp;&nbsp;&nbsp;&nbsp;newUrl.append(args[</span><span style="color: #000000">0</span><span style="color: #000000">]);<br />
<img id="Codehighlighter1_372_557_Open_Image" onclick="this.style.display='none'; Codehighlighter1_372_557_Open_Text.style.display='none'; Codehighlighter1_372_557_Closed_Image.style.display='inline'; Codehighlighter1_372_557_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_372_557_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_372_557_Closed_Text.style.display='none'; Codehighlighter1_372_557_Open_Image.style.display='inline'; Codehighlighter1_372_557_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(args[</span><span style="color: #000000">1</span><span style="color: #000000">]</span><span style="color: #000000">!=</span><span style="color: #0000ff">null</span><span style="color: #000000">)</span><span id="Codehighlighter1_372_557_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_372_557_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_382_479_Open_Image" onclick="this.style.display='none'; Codehighlighter1_382_479_Open_Text.style.display='none'; Codehighlighter1_382_479_Closed_Image.style.display='inline'; Codehighlighter1_382_479_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_382_479_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_382_479_Closed_Text.style.display='none'; Codehighlighter1_382_479_Open_Image.style.display='inline'; Codehighlighter1_382_479_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_382_479_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_382_479_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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;argValue</span><span style="color: #000000">=</span><span style="color: #000000">URLEncoder.encode(args[</span><span style="color: #000000">1</span><span style="color: #000000">],</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newUrl.append(</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">argValue);<br />
<img id="Codehighlighter1_520_552_Open_Image" onclick="this.style.display='none'; Codehighlighter1_520_552_Open_Text.style.display='none'; Codehighlighter1_520_552_Closed_Image.style.display='inline'; Codehighlighter1_520_552_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_520_552_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_520_552_Closed_Text.style.display='none'; Codehighlighter1_520_552_Open_Image.style.display='inline'; Codehighlighter1_520_552_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(UnsupportedEncodingException&nbsp;e)&nbsp;</span><span id="Codehighlighter1_520_552_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_520_552_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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><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;&nbsp;&nbsp;&nbsp;&nbsp;newUrl.append(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(newUrl.toString());</span></div>
<p>原URL：<a href="http://servername?country">http://servername?country</a>=中国</p>
<p>转码后的URL：http://servername?country=%E4%B8%AD%E5%9B%BD&amp;</p>
<img src ="http://www.blogjava.net/aoneany/aggbug/242211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-11-24 10:35 <a href="http://www.blogjava.net/aoneany/articles/242211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA判断是否为鼠标右键</title><link>http://www.blogjava.net/aoneany/articles/241967.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Sat, 22 Nov 2008 07:35:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/241967.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/241967.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/241967.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/241967.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/241967.html</trackback:ping><description><![CDATA[e.getClickCount()==1&amp;&amp;SwingUtilities.isRightMouseButton(e)
<img src ="http://www.blogjava.net/aoneany/aggbug/241967.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-11-22 15:35 <a href="http://www.blogjava.net/aoneany/articles/241967.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现和jdk\bin\native2ascii.exe 同样的功能 </title><link>http://www.blogjava.net/aoneany/articles/241855.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Fri, 21 Nov 2008 07:24:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/241855.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/241855.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/241855.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/241855.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/241855.html</trackback:ping><description><![CDATA[<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 id="Codehighlighter1_39_540_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_540_Open_Text.style.display='none'; Codehighlighter1_39_540_Closed_Image.style.display='inline'; Codehighlighter1_39_540_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_39_540_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_540_Closed_Text.style.display='none'; Codehighlighter1_39_540_Open_Image.style.display='inline'; Codehighlighter1_39_540_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;convertAscii(String&nbsp;str)</span><span id="Codehighlighter1_39_540_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_39_540_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;String&nbsp;tmp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;sb&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuffer(</span><span style="color: #000000">1000</span><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">char</span><span style="color: #000000">&nbsp;c;<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">int</span><span style="color: #000000">&nbsp;i,&nbsp;j;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.setLength(</span><span style="color: #000000">0</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_171_511_Open_Image" onclick="this.style.display='none'; Codehighlighter1_171_511_Open_Text.style.display='none'; Codehighlighter1_171_511_Closed_Image.style.display='inline'; Codehighlighter1_171_511_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_171_511_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_171_511_Closed_Text.style.display='none'; Codehighlighter1_171_511_Open_Image.style.display='inline'; Codehighlighter1_171_511_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">str.length();i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_171_511_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_171_511_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;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;str.charAt(i);<br />
<img id="Codehighlighter1_211_473_Open_Image" onclick="this.style.display='none'; Codehighlighter1_211_473_Open_Text.style.display='none'; Codehighlighter1_211_473_Closed_Image.style.display='inline'; Codehighlighter1_211_473_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_211_473_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_211_473_Closed_Text.style.display='none'; Codehighlighter1_211_473_Open_Image.style.display='inline'; Codehighlighter1_211_473_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">255</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_211_473_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_211_473_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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\u</span><span style="color: #000000">"</span><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">8</span><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.toHexString(j);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(tmp.length()&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(tmp);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0xFF</span><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.toHexString(j);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(tmp.length()&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;sb.append(</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(tmp);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_483_506_Open_Image" onclick="this.style.display='none'; Codehighlighter1_483_506_Open_Text.style.display='none'; Codehighlighter1_483_506_Closed_Image.style.display='inline'; Codehighlighter1_483_506_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_483_506_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_483_506_Closed_Text.style.display='none'; Codehighlighter1_483_506_Open_Image.style.display='inline'; Codehighlighter1_483_506_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_483_506_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_483_506_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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(c);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><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">(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(sb));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/aoneany/aggbug/241855.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-11-21 15:24 <a href="http://www.blogjava.net/aoneany/articles/241855.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以编程方式调用 Apache Ant</title><link>http://www.blogjava.net/aoneany/articles/236923.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Mon, 27 Oct 2008 09:52:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/236923.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/236923.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/236923.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/236923.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/236923.html</trackback:ping><description><![CDATA[<p><a href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html">http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html</a></p>
<pre>File buildFile = new File("build.xml");
Project p = new Project();
DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
p.addBuildListener(consoleLogger);
try {
p.fireBuildStarted();
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
helper.parse(p, buildFile);
p.executeTarget(p.getDefaultTarget());
p.fireBuildFinished(null);
} catch (BuildException e) {
p.fireBuildFinished(e);
}
</pre>
<img src ="http://www.blogjava.net/aoneany/aggbug/236923.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-10-27 17:52 <a href="http://www.blogjava.net/aoneany/articles/236923.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>制作java程序启动文件</title><link>http://www.blogjava.net/aoneany/articles/227983.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Tue, 09 Sep 2008 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/227983.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/227983.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/227983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/227983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/227983.html</trackback:ping><description><![CDATA[@echo off<br />
start .\jre\bin\javaw --把jre包放在当前目录下<br />
&nbsp;-classpath .\bin;&nbsp;.\lib\commons-logging.jar&nbsp; --执行的类和包和<br />
-Djava.library.path=.\lib\ --类库路径<br />
main --Main类<br />
完整的bat文件，中间用空格来格开<br />
@echo off<br />
start .\jre\bin\javaw -classpath .\bin;.\lib\commons-logging.jar;.\lib\dom4j-1.6.1.jar -Djava.library.path=.\lib\ fecat.applicationcenter.FEcatApplication<br />
<br />
<img src ="http://www.blogjava.net/aoneany/aggbug/227983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-09-09 16:32 <a href="http://www.blogjava.net/aoneany/articles/227983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在JavaMDI窗口中加入滚动条</title><link>http://www.blogjava.net/aoneany/articles/227467.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Sat, 06 Sep 2008 17:14:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/227467.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/227467.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/227467.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/227467.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/227467.html</trackback:ping><description><![CDATA[<p>Java设计MDI窗口，要用到JDesktopPane类和JInternalFrame类，其应用可以看jdk自带的metaworks的例子。但用它实现的MDI窗口在子窗口移出父窗口时，没有滚动条，为此必借助于JScrollPane才行，如下：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JDesktopPane desktop = new JDesktopPane ();<br />
.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JScrollPane scrollpane = new JScrollPane(desktop,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getContentPane().add(scrollpane);</p>
<p>但是一运行，但内部窗口移出到边界外边时，我们预想中的滚动条并没有出现，怎么办？原来，JDesktopPane 加到JScrollPane后其大小就只是JScrollPane的viewport的大小，所以滚动条并没有出现。所以我们要想办法让JDesktopPane 的Viewport的大小跟随内部窗口的位置而改变大小，继承一个JDesktopPane 吧：</p>
<p>/**<br />
&nbsp;* @author Turbo Chen<br />
&nbsp;* @version 1.01<br />
&nbsp;*/<br />
import javax.swing.*;<br />
import java.awt.*;<br />
import java.awt.event.*;</p>
<p>public class JDesktop extends JDesktopPane{<br />
&nbsp;&nbsp;&nbsp; public void paint(Graphics g){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.paint(g);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dimension d = preferredSizeOfAllFrames();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.setPreferredSize(d);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.revalidate();<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp; /**<br />
&nbsp;&nbsp; * @return 返回最佳desktop尺寸..<br />
&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public Dimension preferredSizeOfAllFrames(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JInternalFrame [] array = getAllFrames();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int maxX = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int maxY = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; array.length; i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( array[ i ].isVisible() ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int cx;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cx = array[i].getX();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int x = cx + array[i].getWidth();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (x &gt; maxX) maxX = x;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int cy;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cy = array[i].getY();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int y = cy + array[i].getHeight();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (y &gt; maxY) maxY = y;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new Dimension(maxX, maxY);<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
关键是preferredSizeOfAllFrames（）方法，子窗口移动时造成JDesktop的刷新，它调用preferredSizeOfAllFrames（）方法重新计算最佳JDesktop的大小，并通过revalidate()方法来通知它的上层容器即JScrollPane，JScrollPane会根据JDesktop的大小来调整自身Viewport的大小，当Viewport的大小超出可视范围，JScrollPane就出现滚动条了.</p>
<p>在你的程序中，只要用这个新的JDesktop类，就可以在MDI窗口中实现滚动条了</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/aoneany/aggbug/227467.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2008-09-07 01:14 <a href="http://www.blogjava.net/aoneany/articles/227467.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>