﻿<?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-JAVAEE</title><link>http://www.blogjava.net/hhcto/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 18:57:14 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 18:57:14 GMT</pubDate><ttl>60</ttl><item><title>在ubuntu下装jdk1.5和jboss4.0.0</title><link>http://www.blogjava.net/hhcto/archive/2010/11/20/338518.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Sat, 20 Nov 2010 00:28:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2010/11/20/338518.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/338518.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2010/11/20/338518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/338518.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/338518.html</trackback:ping><description><![CDATA[
在ubuntu下安装java环境：


1、jdk安装：

（1）下载jdk：java_ee_sdk-5_01-linux.bin 下载地址 http://java.sun.com/javase/downloads/index_jdk5.jsp

（2）启动ubuntu操作系统

（3）用winscp把java_ee_sdk-5_01-linux.bin拷贝到 ubuntu 的/home/wonderful(wonderful是我的用户目录)

（4）打开Ubuntu终端，运行命令，切换到超级用户。

（5）cd命令 切换到/home/wonderful 目录下

（6）运行 cp java_ee_sdk-5_01-linux.bin /usr/local ，将jdk复制到/usr/local目录下。

（7）cd命令 切换到/usr/local目录下

（8）运行 chmod a+x java_ee_sdk-5_01-linux.bin 给予相应的权限

（9）./java_ee_sdk-5_01-linux.bin，程序运行（程序默认装在opt/SDK/jdk下）

（10）如果报错：error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory。

           解决方法：在/usr/lib下面发现有 /usr/lib/libstdc++.so.6.0.3于是运行 ln -s /usr/lib/libstdc++.so.6.0.3 /usr/lib/libstdc++.so.5 创建一个符合连接，这个错误信息没有了。
 （11）设置Linux的全局环境变量（需要root权限），修改/etc/profile，root超级用户下

             具体命令：

             su root（输入密码后，具有超级用户权限）

             vi /etc/profile（编辑profile环境变量文件）

             加入：

             JAVA_HOME=/opt/SDK/jdk

             PATH=$JAVA_HOME/bin:$PATH

             CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

             export PATH JAVA_HOME CLASSPATH

             在insert不能修改的情况下：按&#8220;shift+:&#8221;进入命令输入格式，输入命令w（保存）

              ctrl+z回到命令窗口
 （12）运行source /etc/profile，激活java
 （13）java -version查看java版本，看是否配置合适。

             Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)

             Java HotSpot(TM) Client VM (build 1.5.0_09-b03, mixed mode)


2、jboss安装：

（1）jboss在windows和ubuntu平台兼容。直接可以把windows下运行正常的jboss放到ubuntu下。

（2）把jboss(文件夹名为jboss4)放到，ubuntu的 /opt/jboss目录下，把sys_config_jboss.xml放到 ，ubuntu的 /opt/jboss/sysHome目录下。（sysHome为新建目录）

（3）修改 /etc/profile 文件。在文件最后增加jboss环境变量。

            JBOSS_HOME=/opt/jboss/jboss4

            PATH=$PATH:/opt/jboss/jboss4/bin

            export JBOSS_HOME PATH

（4）把工程的三个ggjgWebApp.war、HBSAR.sar、GGJGEJB.jar放到jboss的deploy下。其中
ggjgWebApp.war和GGJGEJB.jar的sys_init.properties中的sysHome属性指向/opt/jboss
/sysHome。

（5）启动jboss,在jboss4的bin目录下运行：./run.sh
<img src ="http://www.blogjava.net/hhcto/aggbug/338518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2010-11-20 08:28 <a href="http://www.blogjava.net/hhcto/archive/2010/11/20/338518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 上安装 DB2 Express-C </title><link>http://www.blogjava.net/hhcto/archive/2010/11/20/338517.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Sat, 20 Nov 2010 00:12:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2010/11/20/338517.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/338517.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2010/11/20/338517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/338517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/338517.html</trackback:ping><description><![CDATA[搞了很久， 终于把<a target="_self"><u><strong>DB2</strong></u></a> Express－C给装在了<a target="_self"><u><strong>Linux</strong></u></a>虚
拟机上。 我用的虚拟机是VirtualBox3.0.4， SUN出品， 只有80M左右， 嘿嘿， 用起来很方便，在虚拟机上装过增强工具以后，
虚拟机的屏幕分辨率就会自动调整， 自动适应。 和VMWare庞大的体积比起来， 小巧了很多哦。 至于功能和性能， 我是没感觉出有啥区别来。
<div>&nbsp;&nbsp;&nbsp; 继续说咱们的DB2。准备工作就去去IBM下载<a target="_self"><u><strong>安装</strong></u></a>包和语言包。<span style="color: #00ff40; font-weight: bold;">db2exc_970_LNX_x86.tar.gz</span> 和 <span style="font-weight: bold; color: #00ff40;">db2exc_nlpack_970_LNX_x86.tar.gz</span>。&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp; 下面开始安装：</div>
<ol>
    <li style="background-color: #ffffff;">tar -xvzf <span style="color: #000102;">db2exc_970_LNX_x86.tar.gz<br />
    tar -xvzf db2exc_nlpack_970_LNX_x86.tar.gz</span><br />
    网上说， 可以解压到同一个目录里面， 自动整合， 这个我没有试验， 今天晚上试试。</li>
    <li>这个时候， 如果执行db2setup的话， 会报少一个包. The required library file libaio.so.1 is not found on the system.<br />
    <a target="_self"><u><strong>Ubuntu</strong></u></a>的好处体现出来了，sudo apt-get install libaio1 安装缺少的包。<br />
    其实我第一次安装的是libaio， apt-get提示我说不可用， 可以用libaio1替代。<br />
    安装完依赖包， 就可以用db2setup来安装了。 因为Ubuntu一般不允许root登陆， 为了方便， 我用我的用户安装的。 用root权限安装的话， 会安装到/opt/ibm/db2下面， 用普通用户的话， 会安装的用户目录。<br />
    <br />
    嗯， 高手也可以用db2-install命令行模式安装。 其实期间没有交互信息的， 哪个都行。<br />
    <br />
    安装的过程， 就不细说了， 一路next过来的。</li>
    <li>安装结束以后， 得记着， 要运行安装目录下的db2profile， 添加环境变量。. /home/richar/sqllib/db2profile 自己看清楚目录哦。</li>
    <li>执行结束， 运行db2start命令， 它报给我个错：<br />
    <font size="2">SQL1220N<font color="#c60a00">The</font><font color="#c60a00">database</font><font color="#c60a00">manager</font><font color="#c60a00">shared</font><font color="#c60a00">memory</font><font color="#c60a00">set</font><font color="#c60a00">cannot</font><font color="#c60a00">be</font><font color="#c60a00">allocated</font>.<br />
    <br />
    网上搜了些资料， 说是共享缓存不足， 具体<a target="_self"><u><strong>原理</strong></u></a>我也不清楚了。 用<font color="#990000" face="NSimsun">sysctl kernel.shmmax<font color="#000000"><a target="_self"><u><strong>命令</strong></u></a>查看了共享内存。kernel.shmmax=33554432(32MB), <a target="_self"><u><strong>设置</strong></u></a>成256M<br />
    echo 268435456 &gt; /proc/sys/kernel/shmmax<br />
    <br />
    之后再次执行db2start, 启动成功。</font></font></font></li>
</ol>
<div>&nbsp;&nbsp;&nbsp; 到次， 安装就结束了。 语言包的没写， 因为安装更简单， 直接db2setup就可以了， 根据提示， 很简单的。</div>
<div>&nbsp;&nbsp;&nbsp; 后续的配置， 使用， 下篇文章， 我们再介绍。</div>
<br />
<div style="margin: 5px; line-height: 150%;">tar -xvzf db2exc_970_LNX_x86.tar.gz
tar -xvzf db2exc_nlpack_970_LNX_x86.tar.gz</div>
<p>本文出自 &#8220;<a href="http://leaze.blog.51cto.com/">立子</a>&#8221; 博客，请务必保留此出处<a href="http://leaze.blog.51cto.com/83088/195583">http://leaze.blog.51cto.com/83088/195583</a></p>
<img src ="http://www.blogjava.net/hhcto/aggbug/338517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2010-11-20 08:12 <a href="http://www.blogjava.net/hhcto/archive/2010/11/20/338517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu 里的linux版qq不稳定</title><link>http://www.blogjava.net/hhcto/archive/2010/11/20/338516.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Sat, 20 Nov 2010 00:02:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2010/11/20/338516.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/338516.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2010/11/20/338516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/338516.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/338516.html</trackback:ping><description><![CDATA[解决qq崩溃问题，首先在终端输入：sudo gedit /usr/bin/qq
将弹出来的代码修改为以下代码:
#!/bin/sh
export GDK_NATIVE_WINDOWS=true
cd /usr/share/tencent/qq/
./qq
这样QQ就不会 崩溃了
<img src ="http://www.blogjava.net/hhcto/aggbug/338516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2010-11-20 08:02 <a href="http://www.blogjava.net/hhcto/archive/2010/11/20/338516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript图片浏览器的核心—图片预加载(转)</title><link>http://www.blogjava.net/hhcto/archive/2008/07/07/213061.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Mon, 07 Jul 2008 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2008/07/07/213061.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/213061.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2008/07/07/213061.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/213061.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/213061.html</trackback:ping><description><![CDATA[<p>网站开发时经常需要在某个页面需要实现对大量图片的浏览，如果考虑流量的话，大可以像pconline一样每个页面只显示一张图片，让用户每看一张图片就需要重新下载一下整个页面。不过，在web2.0时代，更多人愿意用javascript来实现一个图片浏览器，让用户无需等待过长的时间就能看到其他图片。</p>
<p>知道了一张图片的地址，需要把它在一个固定大小的html容器（可以是div等）里边显示出来，最重要的当然是需要知道这张即将显示的图片的宽和高，然后再结合容器的宽和高，按照一定的缩放比例使图片显示出来。因此，实现图片预加载就成为图片浏览器的核心功能了。</p>
<p>做过图片翻转效果的朋友其实都知道，要让图片轮换的时候不出现等待，最好是先让图片下载到本地，让浏览器缓存起来。这时，一般都会用到js里边的Image对象。一般的手段无非这样：<br />
function preLoadImg(url) {<br />
&nbsp; var img = new Image();<br />
&nbsp; img.src = url;<br />
}<br />
通过调用preLoadImg函数，传入图片的url，就能使图片预先下载下来了。实际上，这里用到的预下载功能也和这基本一致。图片预下载下来后，通过 img的width和height属性，就能知道图片的宽和高了。但是需要考虑到，在做图片浏览器功能时，图片都是实时显示的。比如你点了显示的按钮，这个时候才会调用上边类似的代码来加载图片。因此，如果你直接用img.width的时候，图片还没有完全下载下来。因此，需要用一些异步的方法，等到图片下载完毕的时候才会再对img的width和height进行调用。</p>
<p>实现这样的异步方法实际上不难，图片的下载完毕事件也很简单，就是简单的onload事件。因此，我们可以写出下面的代码：<br />
function loadImage(url, callback) {<br />
&nbsp; var img = new Image();<br />
&nbsp; img.src = url;</p>
<p>&nbsp; img.onload = function(){ //图片下载完毕时异步调用callback函数。<br />
&nbsp;&nbsp;&nbsp; callback.call(img);&nbsp;&nbsp; // 将callback函数this指针切换为img。<br />
&nbsp; };<br />
}</p>
<p>好了，再来写一个测试用例。<br />
function imgLoaded(){<br />
&nbsp; alert(this.width);<br />
}<br />
&lt;input type="button" value="loadImage" onclick="loadImage('aaa.jpg',imgLoaded)"/&gt;</p>
<p>在firefox中测试一下，发现不错，果然和预想的效果一样，在图片下载后，就会弹出图片的宽度来。无论点击多少次或者刷新结果都一样。</p>
<p>不过，做到这一步，先别高兴太早——还需要考虑一下浏览器的兼容性，于是，赶紧到ie里边测试一下。没错，同样弹出了图片的宽度。但是，再点击load的时候，情况就不一样了，什么反应都没有了。刷新一下，也同样如此。</p>
<p>经过对多个浏览器版本的测试，发现ie6、opera都会这样，而firefox和safari则表现正常。其实，原因也挺简单的，就是因为浏览器的缓存了。当图片加载过一次以后，如果再有对该图片的请求时，由于浏览器已经缓存住这张图片了，不会再发起一次新的请求，而是直接从缓存中加载过来。对于 firefox和safari，它们视图使这两种加载方式对用户透明，同样会引起图片的onload事件，而ie和opera则忽略了这种同一性，不会引起图片的onload事件，因此上边的代码在它们里边不能得以实现效果。</p>
<p>怎么办呢？最好的情况是Image可以有一个状态值表明它是否已经载入成功了。从缓存加载的时候，因为不需要等待，这个状态值就直接是表明已经下载了，而从http请求加载时，因为需要等待下载，这个值显示为未完成。这样的话，就可以搞定了。</p>
<p>经过一些分析，终于发现一个为各个浏览器所兼容的Image的属性——complete。所以，在图片onload事件之前先对这个值做一下判断即可。最后，代码变成如下的样子：<br />
function loadImage(url, callback) {<br />
&nbsp;&nbsp;&nbsp; var img = new Image(); //创建一个Image对象，实现图片的预下载<br />
&nbsp;&nbsp;&nbsp; img.src = url;<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; if (img.complete) { // 如果图片已经存在于浏览器缓存，直接调用回调函数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; callback.call(img);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return; // 直接返回，不用再处理onload事件<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; img.onload = function () { //图片下载完毕时异步调用callback函数。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; callback.call(img);//将回调函数的this替换为Image对象<br />
&nbsp;&nbsp;&nbsp; };<br />
};<br />
经过这么一番折腾，总算是让各个浏览器都能满足我们的目标了。虽然代码很简单，但是却把图片浏览器中最核心的问题解决掉了，接下来你所要做的，仅仅是图片如何呈现的问题了。 <br />
</p>
<img src ="http://www.blogjava.net/hhcto/aggbug/213061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2008-07-07 16:32 <a href="http://www.blogjava.net/hhcto/archive/2008/07/07/213061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用JDBC连接字符串</title><link>http://www.blogjava.net/hhcto/archive/2008/06/14/207937.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Sat, 14 Jun 2008 13:13:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2008/06/14/207937.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/207937.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2008/06/14/207937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/207937.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/207937.html</trackback:ping><description><![CDATA[<h2>常用JDBC连接字符串</h2>
<div id="postmessage_178335" class="t_msgfont">常用JDBC连接字符串<br />
1.<span href="http://www.51leifeng.net/tag.php?name=MySQL" onclick="tagshow(event)" class="t_tag">MySQL</span>
<div class="blockcode"><span class="headactions" onclick="copycode($('code0'));"><br />
</span>
<h5><span href="http://www.51leifeng.net/tag.php?name=%E4%BB%A3%E7%A0%81" onclick="tagshow(event)" class="t_tag">代码</span>:</h5>
<code id="code0">Class.forName(&nbsp;&nbsp;" org.gjt.mm.my<span href="http://www.51leifeng.net/tag.php?name=sql" onclick="tagshow(event)" class="t_tag">sql</span>.Driver "&nbsp;&nbsp;);<br />
Connection conn&nbsp;&nbsp;=&nbsp;&nbsp;DriverManager.getConnection(&nbsp;&nbsp;" jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName " , sUsr, sPwd ); </code></div>
2.Microsoft <span href="http://www.51leifeng.net/tag.php?name=SQLServer" onclick="tagshow(event)" class="t_tag">SQLServer</span>
<div class="blockcode"><span class="headactions" onclick="copycode($('code1'));"><br />
</span>
<h5>代码:</h5>
<code id="code1">Class.forName(&nbsp;&nbsp;" com.microsoft.jdbc.sql<span href="http://www.51leifeng.net/tag.php?name=server" onclick="tagshow(event)" class="t_tag">server</span>.SQLServerDriver "&nbsp;&nbsp;);<br />
Connection conn&nbsp;&nbsp;=&nbsp;&nbsp;DriverManager.getConnection(&nbsp;&nbsp;"
jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master
" , sUsr, sPwd ); </code></div>
3.<span href="http://www.51leifeng.net/tag.php?name=Oracle" onclick="tagshow(event)" class="t_tag">Oracle</span>
<div class="blockcode"><span class="headactions" onclick="copycode($('code2'));"><br />
</span>
<h5>代码:</h5>
<code id="code2">Class.forName(&nbsp;&nbsp;" oracle.jdbc.driver.OracleDriver "&nbsp;&nbsp;);<br />
Connection conn&nbsp;&nbsp;=&nbsp;&nbsp;DriverManager.getConnection ("jdbc: oracle:thin: @MyDbComputerNameOrIP:1521: ORCL " , sUsr, sPwd ); </code></div>
4.<span href="http://www.51leifeng.net/tag.php?name=DB2" onclick="tagshow(event)" class="t_tag">DB2</span>
<div class="blockcode"><span class="headactions" onclick="copycode($('code3'));"><br />
</span>
<h5>代码:</h5>
<code id="code3">Class.forName( " com.ibm.db2.jdbc.<span href="http://www.51leifeng.net/tag.php?name=net" onclick="tagshow(event)" class="t_tag">net</span>.DB2Driver " );<br />
String url = " jdbc:db2://192.9.200.108:6789/SAMPLE " <br />
Connection conn&nbsp;&nbsp;=&nbsp;&nbsp;DriverManager.getConnection( url, sUsr, sPwd ); </code></div>
5.ODBC
<div class="blockcode">
<h5>代码:</h5>
<code id="code4">Class.forName(&nbsp;&nbsp;" sun.jdbc.odbc.JdbcOdbcDriver "&nbsp;&nbsp;);<br />
Connection conn&nbsp;&nbsp;=&nbsp;&nbsp;DriverManager.getConnection("jdbc: odbc: "&nbsp; &nbsp;+&nbsp;&nbsp;sDsn, sUsr, sPwd ); </code></div>
6.PostgreSQL
<div class="blockcode"><span class="headactions" onclick="copycode($('code5'));"><br />
</span>
<h5>代码:</h5>
<code id="code5">Class.forName(&nbsp;&nbsp;" org.postgresql.Driver "&nbsp;&nbsp;);<br />
Connection conn&nbsp;&nbsp;=&nbsp;&nbsp;DriverManager.getConnection(&nbsp;&nbsp;" jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName " , sUsr, sPwd );</code></div>
</div>
<img src ="http://www.blogjava.net/hhcto/aggbug/207937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2008-06-14 21:13 <a href="http://www.blogjava.net/hhcto/archive/2008/06/14/207937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模式窗口showModalDialog详解 (转载)</title><link>http://www.blogjava.net/hhcto/archive/2007/09/12/144436.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Wed, 12 Sep 2007 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2007/09/12/144436.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/144436.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2007/09/12/144436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/144436.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/144436.html</trackback:ping><description><![CDATA[模式窗口showModalDialog详解&nbsp;<br />
showModalDialog()、showModelessDialog()方法使用详解&nbsp;<br />
<br />
Javascript有许多内建的方法来产生对话框，如：window.alert(),&nbsp;window.confirm(),window.prompt().等。&nbsp;然而IE提供更多的方法支持对话框。如：&nbsp;<br />
<br />
　　showModalDialog()&nbsp;(IE&nbsp;4+&nbsp;支持)&nbsp;<br />
　　showModelessDialog()&nbsp;(IE&nbsp;5+&nbsp;支持)&nbsp;<br />
<br />
<br />
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框，由于是对话框，因此它并没有一般用window.open()打开的窗口的所有属性。&nbsp;<br />
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。&nbsp;<br />
<br />
当我们用showModelessDialog()打开窗口时，不必用window.close()去关闭它，当以非模态方式［IE5］打开时，&nbsp;打开对话框的窗口仍可以进行其他的操作，即对话框不总是最上面的焦点，当打开它的窗口ＵＲＬ改变时，它自动关闭。而模态［ＩＥ４］方式的对话框始终有焦点（焦点不可移走，直到它关闭）。模态对话框和打开它的窗口相联系，因此我们打开另外的窗口时，他们的链接关系依然保存，并且隐藏在活动窗口的下面。&nbsp;<br />
<br />
使用方法如下：&nbsp;<br />
vReturnValue&nbsp;=&nbsp;window.showModalDialog(sURL&nbsp;[,&nbsp;vArguments]&nbsp;[,&nbsp;sFeatures])&nbsp;<br />
vReturnValue&nbsp;=&nbsp;window.showModelessDialog(sURL&nbsp;[,&nbsp;vArguments]&nbsp;[,&nbsp;sFeatures])&nbsp;<br />
参数说明：&nbsp;<br />
sURL&nbsp;<br />
必选参数，类型：字符串。用来指定对话框要显示的文档的URL。&nbsp;<br />
vArguments&nbsp;<br />
可选参数，类型：变体。用来向对话框传递参数。传递的参数类型不限，包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。&nbsp;<br />
sFeatures&nbsp;<br />
可选参数，类型：字符串。用来描述对话框的外观等信息，可以使用以下的一个或几个，用分号&#8220;;&#8221;隔开。&nbsp;<br />
dialogHeight&nbsp;对话框高度，不小于１００px，ＩＥ４中dialogHeight&nbsp;和&nbsp;dialogWidth&nbsp;默认的单位是em，而ＩＥ５中是px，为方便其见，在定义modal方式的对话框时，用px做单位。&nbsp;<br />
　　dialogWidth:&nbsp;对话框宽度。&nbsp;<br />
　　dialogLeft:&nbsp;距离桌面左的距离。&nbsp;<br />
　　dialogTop:&nbsp;离桌面上的距离。&nbsp;<br />
　　center:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}：窗口是否居中，默认yes，但仍可以指定高度和宽度。&nbsp;<br />
　　help:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}：是否显示帮助按钮，默认yes。&nbsp;<br />
　　resizable:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}&nbsp;［ＩＥ５＋］：是否可被改变大小。默认no。&nbsp;<br />
　　status:&nbsp;{yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;}&nbsp;［IE5+］：是否显示状态栏。默认为yes[&nbsp;Modeless]或no[Modal]。&nbsp;<br />
scroll:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：指明对话框是否显示滚动条。默认为yes。&nbsp;<br />
<br />
还有几个属性是用在HTA中的，在一般的网页中一般不使用。&nbsp;<br />
dialogHide:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：在打印或者打印预览时对话框是否隐藏。默认为no。&nbsp;<br />
edge:{&nbsp;sunken&nbsp;|&nbsp;raised&nbsp;}：指明对话框的边框样式。默认为raised。&nbsp;<br />
unadorned:{&nbsp;yes&nbsp;|&nbsp;no&nbsp;|&nbsp;1&nbsp;|&nbsp;0&nbsp;|&nbsp;on&nbsp;|&nbsp;off&nbsp;}：默认为no。&nbsp;<br />
<br />
传入参数：&nbsp;<br />
要想对话框传递参数，是通过vArguments来进行传递的。类型不限制，对于字符串类型，最大为4096个字符。也可以传递对象，例如：&nbsp;<br />
<br />
test1.htm&nbsp;<br />
====================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
var&nbsp;mxh1&nbsp;=&nbsp;new&nbsp;Array("mxh","net_lover","孟子E章")&nbsp;<br />
var&nbsp;mxh2&nbsp;=&nbsp;window.open("about:blank","window_mxh")&nbsp;<br />
//&nbsp;向对话框传递数组&nbsp;<br />
window.showModalDialog("test2.htm",mxh1)&nbsp;<br />
//&nbsp;向对话框传递window对象&nbsp;<br />
window.showModalDialog("test3.htm",mxh2)&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
test2.htm&nbsp;<br />
====================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
var&nbsp;a&nbsp;=&nbsp;window.dialogArguments&nbsp;<br />
alert("您传递的参数为："&nbsp;+&nbsp;a)&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
test3.htm&nbsp;<br />
====================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
var&nbsp;a&nbsp;=&nbsp;window.dialogArguments&nbsp;<br />
alert("您传递的参数为window对象，名称："&nbsp;+&nbsp;a.name)&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
可以通过window.returnValue向打开对话框的窗口返回信息，当然也可以是对象。例如：&nbsp;<br />
<br />
test4.htm&nbsp;<br />
===================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
var&nbsp;a&nbsp;=&nbsp;window.showModalDialog("test5.htm")&nbsp;<br />
for(i=0;i&lt;a.length;i++)&nbsp;alert(a[i])&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
test5.htm&nbsp;<br />
===================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
function&nbsp;sendTo()&nbsp;<br />
{&nbsp;<br />
var&nbsp;a=new&nbsp;Array("a","b")&nbsp;<br />
window.returnValue&nbsp;=&nbsp;a&nbsp;<br />
window.close()&nbsp;<br />
}&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
&lt;body&gt;&nbsp;<br />
&lt;form&gt;&nbsp;<br />
&lt;input&nbsp;value="返回"&nbsp;type=button&nbsp;onclick="sendTo()"&gt;&nbsp;<br />
&lt;/form&gt;&nbsp;<br />
<br />
常见问题：&nbsp;<br />
1，如何在模态对话框中进行提交而不新开窗口？&nbsp;<br />
如果你&nbsp;的&nbsp;浏览器是IE5.5+,可以在对话框中使用带name属性的iframe，提交时可以制定target为该iframe的name。对于IE4+，你可以用高度为0的frame来作：例子，&nbsp;<br />
<br />
test6.htm&nbsp;<br />
===================&nbsp;<br />
&lt;script&gt;&nbsp;<br />
window.showModalDialog("test7.htm")&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
<br />
test7.htm&nbsp;<br />
===================&nbsp;<br />
if(window.location.search)&nbsp;alert(window.location.search)&nbsp;<br />
&lt;frameset&nbsp;rows="0,*"&gt;&nbsp;<br />
&lt;frame&nbsp;src="about:blank"&gt;&nbsp;<br />
&lt;frame&nbsp;src="test8.htm"&gt;&nbsp;<br />
&lt;/frameset&gt;&nbsp;<br />
<br />
test8.htm&nbsp;<br />
===================&nbsp;<br />
&lt;form&nbsp;target="_self"&nbsp;method="get"&gt;&nbsp;<br />
&lt;input&nbsp;name=txt&nbsp;value="test"&gt;&nbsp;<br />
&lt;input&nbsp;type=submit&gt;&nbsp;<br />
&lt;/form&gt;&nbsp;<br />
&lt;script&gt;&nbsp;<br />
if(window.location.search)&nbsp;alert(window.location.search)&nbsp;<br />
&lt;/script&gt;&nbsp;<br />
2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗？&nbsp;<br />
答案是不能。但在frame里是可以的。
<img src ="http://www.blogjava.net/hhcto/aggbug/144436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2007-09-12 11:19 <a href="http://www.blogjava.net/hhcto/archive/2007/09/12/144436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javaScript + DHtml + Css 自己实现select (原创)</title><link>http://www.blogjava.net/hhcto/archive/2007/06/27/126472.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Wed, 27 Jun 2007 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2007/06/27/126472.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/126472.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2007/06/27/126472.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/126472.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/126472.html</trackback:ping><description><![CDATA[<p>&lt;----------------HTML部分---------------------&gt;<br><br>&lt;style&gt;<br>.close{<br>&nbsp; visibility:hidden; <br>&nbsp; border : 1px solid #008000;<br>&nbsp; position:absolute;<br>&nbsp;&nbsp; }<br>.open{<br>&nbsp; visibility:visible;<br>&nbsp; border : 1px solid #008000;<br>&nbsp; position:absolute;<br>&nbsp; }<br>&lt;/style&gt;<br>&lt;script language='JavaScript'&gt;<br>&nbsp;<br>&nbsp;//—————显示菜单项 menuId:当前菜单Id—————<br>&nbsp;function showMenuItem(menuId) {<br>&nbsp;&nbsp;var node = document.getElementById(menuId);<br>&nbsp;&nbsp;if(node.hasChildNodes()) {<br>&nbsp;&nbsp;&nbsp;node.style.visibility='visible';<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;<br>&nbsp;//—————隐藏菜单项 menuId:当前菜单Id—————<br>&nbsp;function hideMenuItem(menuId) {<br>&nbsp;&nbsp;&nbsp;document.getElementById(menuId).style.visibility='hidden';<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————隐藏菜单项事件方法—————<br>&nbsp;function hideMenuItemEvent() {<br>&nbsp;&nbsp;event.srcElement.parentElement.style.visibility='hidden';<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————初始化下拉框—————<br>&nbsp;function inintSelectMenu() {<br>&nbsp;&nbsp;//查找一级节点<br>&nbsp;&nbsp;var resultNodes = findXmlnodes("//mainClass",resultNodes);<br>&nbsp;&nbsp;var mainClassNode = document.getElementById("mainClass");</p>
<p>&nbsp;&nbsp;//给一级节点添加子子节点<br>&nbsp; &nbsp;addChildrenNodes(mainClassNode,resultNodes);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//缓存一级菜单选择的默认值<br>&nbsp;&nbsp;var mainClassTxtNode = document.getElementById("mainClassTxt");<br>&nbsp;&nbsp;var mainClassBtnNode = document.getElementById("mainClassBtn");<br>&nbsp;&nbsp;mainClassTxtNode.setAttribute("tempId",1);<br>&nbsp;&nbsp;//设置下拉菜单绝对位置<br>&nbsp;&nbsp;setDivAbsulotePosition(mainClassNode,mainClassTxtNode);<br>&nbsp;&nbsp;//设置Btn的绝对位置<br>&nbsp;&nbsp;//mainClassBtnNode.style.position = "absolute";<br>&nbsp;&nbsp;//setBtnAbsulotePosition(mainClassBtnNode,mainClassTxtNode);<br>&nbsp;<br>&nbsp;&nbsp;//一级菜单<br>&nbsp;&nbsp;mainClassNode.attachEvent(onblur,hideMenuItem);<br>&nbsp;&nbsp;//二级菜单<br>&nbsp;&nbsp;var subClassNode = document.getElementById("subClass");<br>&nbsp;&nbsp;var subClassBtnNode = document.getElementById("subClassBtn");<br>&nbsp;&nbsp;var subClassTxtNode = document.getElementById("subClassTxt");<br>&nbsp;&nbsp;setDivAbsulotePosition(subClassNode,subClassTxtNode);<br>&nbsp;&nbsp;//设置Btn的绝对位置<br>&nbsp;&nbsp;//subClassBtnNode.style.position = "absolute";<br>&nbsp;&nbsp;//setBtnAbsulotePosition(subClassBtnNode,subClassTxtNode);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//三级菜单<br>&nbsp;&nbsp;var itemClassNode = document.getElementById("itemClass");<br>&nbsp;&nbsp;var itemClassBtnNode = document.getElementById("itemClassBtn");<br>&nbsp;&nbsp;var itemClassTxtNode = document.getElementById("itemClassTxt");<br>&nbsp;&nbsp;setDivAbsulotePosition(itemClassNode,itemClassTxtNode);<br>&nbsp;&nbsp;//设置Btn的绝对位置<br>&nbsp;&nbsp;//itemClassBtnNode.style.position = "absolute";<br>&nbsp;&nbsp;//setBtnAbsulotePosition(itemClassBtnNode,itemClassTxtNode);<br>&nbsp;} </p>
<p>&nbsp;<br>&nbsp;//—————更新下拉菜单—————<br>&nbsp;function updateSelectMenu() {<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//被选择节点Id<br>&nbsp;&nbsp;var nodeId = event.srcElement.getAttribute("id");<br>&nbsp;&nbsp;//被选择节点文本子节点名<br>&nbsp;&nbsp;var nodeName = event.srcElement.title != null &gt; 5 ? event.srcElement.title : event.srcElement.childNodes.item(0).nodeValue;<br>&nbsp;&nbsp;//被选择节点父节点<br>&nbsp;&nbsp;var parentNode = event.srcElement.parentElement;<br>&nbsp;&nbsp;//被选择节点父节点Id<br>&nbsp;&nbsp;var parentNodeId = parentNode.getAttribute("id");<br>&nbsp;&nbsp;//给文本框赋被选择值<br>&nbsp;&nbsp;document.getElementById(parentNodeId + "Txt").setAttribute("value",nodeName);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//如果被选择的是一级菜单，更新二、三级菜单<br>&nbsp;&nbsp;if(parentNodeId == "mainClass") {<br>&nbsp;&nbsp;&nbsp;//缓存一级菜单选择<br>&nbsp;&nbsp;&nbsp;document.getElementById(parentNodeId + "Txt").setAttribute("tempId",nodeId);<br>&nbsp;&nbsp;&nbsp;//清空二级菜单列表<br>&nbsp;&nbsp;&nbsp;document.getElementById("subClassTxt").setAttribute("value","请选择");<br>&nbsp;&nbsp;&nbsp;//清空三级菜单列表<br>&nbsp;&nbsp;&nbsp;document.getElementById("itemClassTxt").setAttribute("value","请选择");<br>&nbsp;&nbsp;&nbsp;//移除二级节点<br>&nbsp;&nbsp;&nbsp;removeChildNodes("subClass");<br>&nbsp;&nbsp;&nbsp;//移除三级节点<br>&nbsp;&nbsp;&nbsp;removeChildNodes("itemClass");<br>&nbsp;&nbsp;&nbsp;//查找二级节点<br>&nbsp;&nbsp;&nbsp;var resultSubNodes = findXmlnodes("//mainClass[@id=" + nodeId + "]/subClass",resultSubNodes);<br>&nbsp;&nbsp;&nbsp;//alert(resultSubNodes.length);<br>&nbsp;&nbsp;&nbsp;var subNode = document.getElementById("subClass");<br>&nbsp;&nbsp;&nbsp;//给二级节点添加子子节点<br>&nbsp; &nbsp;&nbsp;addChildrenNodes(subNode,resultSubNodes);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//如果更新的是二级菜单，更新三级菜单<br>&nbsp;&nbsp;if(parentNodeId == "subClass") {<br>&nbsp;&nbsp;&nbsp;//获得一级菜单缓存值<br>&nbsp;&nbsp;&nbsp;var mainClassId = document.getElementById("mainClassTxt").getAttribute("tempId");<br>&nbsp;&nbsp;&nbsp;//清空三级菜单列表<br>&nbsp;&nbsp;&nbsp;document.getElementById("itemClassTxt").setAttribute("value","请选择");<br>&nbsp;&nbsp;&nbsp;removeChildNodes("itemClass");<br>&nbsp;&nbsp;&nbsp;//移除三级节点<br>&nbsp;&nbsp;&nbsp;removeChildNodes("itemClass");<br>&nbsp;&nbsp;&nbsp;//查找三级节点<br>&nbsp;&nbsp;&nbsp;var resultItemNodes = findXmlnodes("//mainClass[@id=" + mainClassId + "]/subClass[@id=" + nodeId + "]/item",resultItemNodes);<br>&nbsp;&nbsp;&nbsp;//alert(resultItemNodes.length);<br>&nbsp;&nbsp;&nbsp;var itemNode = document.getElementById("itemClass");<br>&nbsp;&nbsp;&nbsp;//给三级节点添加子子节点<br>&nbsp; &nbsp;&nbsp;addChildrenNodes(itemNode,resultItemNodes);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;}<br>&nbsp;<br>&nbsp;</p>
<p>&nbsp;//—————添加子节点列表 parentNode： 父节点, childrenNodes: 子节点列表—————<br>&nbsp;function addChildrenNodes(parentNode,childrenNodes) {<br>&nbsp;&nbsp;for(i = 0; i &lt;　childrenNodes.length; i++) {<br>&nbsp;&nbsp;&nbsp;//var tempNode = childrenNodes.item(i);<br>&nbsp;&nbsp;&nbsp;//prompt("tempNode",tempNode.xml);<br>&nbsp;&nbsp;&nbsp;createNode("div",childrenNodes.item(i).getAttribute("id"),childrenNodes.item(i).getAttribute("name"),parentNode);<br>&nbsp;&nbsp;&nbsp;//alert(childrenNodes.item(i).getAttribute("name") + "&nbsp; " + childrenNodes.item(i).getAttribute("id"));<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;<br>&nbsp;//—————创建子节点，并添加到父节点 type: 节点类型, id：节点Id, txt:文本节点文本值，parentNode： 父节点 —————<br>&nbsp;function createNode(type,id,txt,parentNode) {<br>&nbsp;&nbsp;//文本节点<br>&nbsp;&nbsp;var txtNode = null;<br>&nbsp;&nbsp;//需创建的子节点<br>&nbsp;&nbsp;var subNode = null;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//判断节点类型是否为空，为空直接返回<br>&nbsp;&nbsp;if(type == null) {<br>&nbsp;&nbsp;&nbsp;return;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;//创建节点<br>&nbsp;&nbsp;&nbsp;&nbsp; subNode = document.createElement(type);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//判断是否包含文本是否为空，不为空则创建并添加文本子节点<br>&nbsp;&nbsp;if(txt != null) {<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//设置文本节点弹出文字<br>&nbsp;&nbsp;&nbsp;if(checkSelectMenuItemLength(txt)){<br>&nbsp;&nbsp;&nbsp;&nbsp;subNode.title = txt;<br>&nbsp;&nbsp;&nbsp;&nbsp;var txtTemp = txt.substring(0, 5) + "..." ;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;//创建文本节点<br>&nbsp;&nbsp;&nbsp;&nbsp;txtNode = document.createTextNode(txtTemp);<br>&nbsp;&nbsp;&nbsp;}else {<br>&nbsp;&nbsp;&nbsp;&nbsp;txtNode = document.createTextNode(txt);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//添加文本节点<br>&nbsp;&nbsp;&nbsp;subNode.appendChild(txtNode);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//判断id是否为空，不为空则添加id属性<br>&nbsp;&nbsp;if(id != null) {<br>&nbsp;&nbsp;&nbsp;subNode.setAttribute('id',id);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;subNode.attachEvent("onclick",hideMenuItemEvent);<br>&nbsp;&nbsp;subNode.attachEvent("onclick",updateSelectMenu);<br>&nbsp;&nbsp;subNode.attachEvent("onmouseover",romanceItem);<br>&nbsp;&nbsp;subNode.attachEvent("onmouseout",unRomanceItem);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//添加新建子节点到父节点<br>&nbsp;&nbsp;parentNode.appendChild(subNode);<br>&nbsp;&nbsp;<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————查找数据节点 condition: XPath查询条件, resultNodes:返回节点集合—————<br>&nbsp;function findXmlnodes(condition,resultNodes) {<br>&nbsp;&nbsp;//判断查询条件是否为空<br>&nbsp;&nbsp;if(condition == null) {<br>&nbsp;&nbsp;&nbsp;return;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;// 初始化ActiveXObject DOMDocment对象<br>&nbsp;&nbsp;var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");<br>&nbsp;&nbsp;// 设置异步方式<br>&nbsp;&nbsp;xmlDoc.async=false;<br>&nbsp;&nbsp;//　加载xml<br>&nbsp;&nbsp;xmlDoc.load(document.getElementById("mainClassTxt").getAttribute("xmlSrc"));<br>&nbsp;&nbsp;//&nbsp; 指定查询语言<br>&nbsp;&nbsp;xmlDoc.setProperty("SelectionLanguage","XPath");<br>&nbsp;&nbsp;//&nbsp; 查询并获得节点 <br>&nbsp;&nbsp;resultNodes = xmlDoc.documentElement.selectNodes(condition);<br>&nbsp;&nbsp;//alert(resultNodes.length);&nbsp;<br>&nbsp;&nbsp;return resultNodes;<br>&nbsp;}<br>&nbsp;<br>&nbsp;<br>&nbsp;//—————移除所有子节点 pareantNodeName： 父节点名—————<br>&nbsp;function removeChildNodes(pareantNodeName) {<br>&nbsp;&nbsp;var subNodes = document.getElementById(pareantNodeName).childNodes;<br>&nbsp;&nbsp;var subNodeslength = subNodes.length;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;for (i = 0; i &lt; subNodeslength; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;subNodes.item(0).removeNode(true);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;</p>
<p>&nbsp;//—————渲染条目背景色—————<br>&nbsp;function romanceItem() {<br>&nbsp;&nbsp;event.srcElement.style.backgroundColor="cornflowerblue";<br>&nbsp;}</p>
<p>&nbsp;//—————反渲染条目背景色—————<br>&nbsp;function unRomanceItem() {<br>&nbsp;&nbsp;event.srcElement.style.backgroundColor="#ffffff";<br>&nbsp;}</p>
<p>&nbsp;//—————检测条目长度—————<br>&nbsp;function checkSelectMenuItemLength(txt) {<br>&nbsp;&nbsp;if(txt.length &gt; 5)<br>&nbsp;&nbsp;&nbsp;return true;<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;return false;<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————设置层的绝对坐标 setNode：须设置坐标的节点 consultNode：参照节点 —————<br>&nbsp;function setDivAbsulotePosition(setNode,consultNode) {<br>&nbsp;&nbsp;setNode.style.top = getPosition(consultNode).y +　consultNode.offsetHeight;<br>&nbsp;&nbsp;setNode.style.left = getPosition(consultNode).x;<br>&nbsp;&nbsp;setNode.style.width = consultNode.offsetWidth;<br>&nbsp;} <br>&nbsp;<br>&nbsp;function setBtnAbsulotePosition(setNode,consultNode) {<br>&nbsp;&nbsp;setNode.style.top = getPosition(consultNode).y;<br>&nbsp;&nbsp;setNode.style.left = getPosition(consultNode).x + consultNode.offsetWidth;<br>&nbsp;<br>&nbsp;}<br>&nbsp;<br>&nbsp;//—————获取参照节点的绝对位置 node： 参照节点—————<br>&nbsp;function getPosition(node){&nbsp; <br>&nbsp;&nbsp;var left = 0;&nbsp; <br>&nbsp;&nbsp;var top&nbsp; = 0;&nbsp; <br>&nbsp;&nbsp;while (node.offsetParent){&nbsp; <br>&nbsp;&nbsp;&nbsp;left += node.offsetLeft;&nbsp; <br>&nbsp;&nbsp;&nbsp;top += node.offsetTop;&nbsp; <br>&nbsp;&nbsp;node = node.offsetParent;&nbsp; <br>&nbsp;&nbsp;}&nbsp; <br>&nbsp;&nbsp;left += node.offsetLeft;&nbsp; <br>&nbsp;&nbsp;top += node.offsetTop;<br>&nbsp;return {x:left, y:top};&nbsp; <br>}&nbsp; <br>&nbsp;<br>&lt;/script&gt;</p>
<p>&lt;html&gt;<br>&nbsp;&lt;body onload="inintSelectMenu();"&gt;<br>&nbsp;&nbsp;&lt;form&gt;<br>&nbsp;&nbsp;&nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;<br>&nbsp;&nbsp;&nbsp;&lt;center&gt;<br>&nbsp;&nbsp;&nbsp;&lt;table&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;nbsp;&amp;nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;主分类<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type='text' id='mainClassTxt' readonly='true' value="请选择" xmlSrc="selectMenuData.xml"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input id='mainClassBtn' type='button' value='&gt;&gt;'&nbsp; onclick="showMenuItem('mainClass');hideMenuItem('itemClass');hideMenuItem('subClass');" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/input&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id='mainClass' class="close" &gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&amp;nbsp;&amp;nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;子分类<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp; type='text' id='subClassTxt' readonly='true' value="请选择" &gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input id='subClassBtn' type='button' value='&gt;&gt;' onclick="showMenuItem('subClass');hideMenuItem('mainClass');hideMenuItem('itemClass');"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/input&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id='subClass' class="close" &gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;td&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&amp;nbsp;&amp;nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;条&nbsp; 目<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type='text' id='itemClassTxt' readonly='true' value="请选择"&nbsp; &gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input id='itemClassBtn' type='button' value='&gt;&gt;' onclick="showMenuItem('itemClass');hideMenuItem('mainClass');hideMenuItem('subClass');" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/input&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id='itemClass' class="close" &gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/center&gt;<br>&nbsp;&nbsp;&lt;/form&gt;<br>&nbsp;&lt;/body&gt;<br>&lt;/html&gt;<br>&lt;----------------HTML部分---------------------&gt;<br><br><br><br>&lt;----------------XML部分---------------------&gt;<br>&lt;classes&gt;<br>&nbsp;&lt;mainClass id='1' name='book'&gt;<br>&nbsp;&nbsp;&lt;subClass id='1' name='computer'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='think in java'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='C#'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='javascript'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='2' name='literature'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='literaturea'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='literatureb'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='literaturec'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='3' name='test'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='testaaaa'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='testbbbb'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='testcccc'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='4' name='ssssss'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='sssssssaaa'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='sssssssbbb'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='sssssssccc'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&lt;/mainClass&gt;<br>&nbsp;&lt;mainClass id='2' name='book2'&gt;<br>&nbsp;&nbsp;&lt;subClass id='1' name='computer2'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='think in java2'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='C#2'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='javascript2'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='2' name='literature2'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='literaturea21'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='literatureb22'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='literaturec23'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='3' name='test2'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='testaaaa21'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='testbbbb22'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='testcccc23'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='4' name='ssssss2'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='sssssssaaa21'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='sssssssbbb22'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='sssssssccc23'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&lt;/mainClass&gt;<br>&nbsp;&lt;mainClass id='3' name='book3'&gt;<br>&nbsp;&nbsp;&lt;subClass id='1' name='computer3'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='think in java3'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='C#3'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='javascript3'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='2' name='literature3'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='literaturea31'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='literatureb32'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='literaturec33'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='3' name='test3'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='testaaaa31'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='testbbbb32'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='testcccc33'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='4' name='ssssss3'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='sssssssaaa31'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='sssssssbbb32'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='sssssssccc33'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&lt;/mainClass&gt;<br>&nbsp;&lt;mainClass id='4' name='book4'&gt;<br>&nbsp;&nbsp;&lt;subClass id='1' name='computer4'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='think in java4'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='C#4'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='javascript4'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='2' name='literature4'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='literaturea41'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='literatureb42'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='literaturec43'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='3' name='test4'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='testaaaa41'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='testbbbb42'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='testcccc43'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&nbsp;&lt;subClass id='4' name='ssssss4'&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='1' name='sssssssaaa41'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='2' name='sssssssbbb42'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&nbsp;&lt;item id='3' name='sssssssccc43'&gt;&lt;/item&gt;<br>&nbsp;&nbsp;&lt;/subClass&gt;<br>&nbsp;&lt;/mainClass&gt;<br>&lt;/classes&gt;<br>&lt;----------------XML部分---------------------&gt;</p>
<img src ="http://www.blogjava.net/hhcto/aggbug/126472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2007-06-27 09:51 <a href="http://www.blogjava.net/hhcto/archive/2007/06/27/126472.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Javascript attachEvent传递参数的办法（转载）</title><link>http://www.blogjava.net/hhcto/archive/2007/06/27/126469.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Wed, 27 Jun 2007 01:48:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2007/06/27/126469.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/126469.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2007/06/27/126469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/126469.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/126469.html</trackback:ping><description><![CDATA[<ol>
    <li class=alt><span><span class=keyword>var</span><span>&nbsp;newopen&nbsp;=&nbsp;</span><span class=keyword>function</span><span>(id,level) &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;</span><span class=keyword>function</span><span>() &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;opentree(id,level);</span><span class=comment>//该函数为外部定义的一个执行函数； </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=alt><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>x.attachEvent(</span><span class=string>"onclick"</span><span>,newopen(id,parseInt(level)+1)); &nbsp;&nbsp;</span></span></li>
    <li class=alt><span>y.attachEvent(</span><span class=string>"onclick"</span><span>,newopen(id,parseInt(level)+2));&nbsp;&nbsp;</span></span></li>
</ol>
<img src ="http://www.blogjava.net/hhcto/aggbug/126469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2007-06-27 09:48 <a href="http://www.blogjava.net/hhcto/archive/2007/06/27/126469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.lang.UnsatisfiedLinkError错误问题</title><link>http://www.blogjava.net/hhcto/archive/2006/12/17/88321.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Sun, 17 Dec 2006 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2006/12/17/88321.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/88321.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2006/12/17/88321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/88321.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/88321.html</trackback:ping><description><![CDATA[
		<strong>
				<span class="tpc_title">java.lang.UnsatisfiedLinkError错误问题</span>
				<br />
				<br />
		</strong>
		<span class="tpc_content">
				<font size="2">运行一段代码的时候报出一下错误：<br />java.lang.UnsatisfiedLinkError: no swt-win32-3063 in java.library.path<br />   at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)<br />   at java.lang.Runtime.loadLibrary0(Runtime.java:788)<br />   at java.lang.System.loadLibrary(System.java:834)<br />   at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)<br />   at org.eclipse.swt.internal.win32.OS.&lt;clinit&gt;(OS.java:18)<br />   at org.eclipse.swt.widgets.Widget.&lt;clinit&gt;(Widget.java:66)<br />   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />   at java.lang.reflect.Method.invoke(Method.java:324)<br />   at astexplorer.ASTMain.compileAndRun(ASTMain.java:970)<br />   at astexplorer.ASTMain.main(ASTMain.java:997)<br />Exception in thread "main" </font>
				<br />
				<br />
				<span class="tpc_content">
						<font size="2">估計在你的eclipse project根目錄下沒有swt-win32-3063.dll這個文件,<br />可在eclipse目錄下找到這個dll連接庫後,copy至project的根目下,應該可以解決問題的.<br /><br />另外產生java.lang.UnsatisfiedLinkError問題也有可能是project以前使用了高版本的jdk/jre編譯,<br />現在使用低版本的jdk/jre執行而產生錯誤.</font>
				</span>
				<br />
				<br />
				<span class="tpc_content">
						<font size="2">你可以把org.eclipse.swt.win32.win32.x86_3.1.0.jar 里面的三个动态库*.dll文件<br />swt-awt-win32-3138.dll，swt-gdip-win32-3138.dll，swt-win32-3138.dll   都放到<br />C:\windows\system32下面，这样肯定可以了<br /><br />原因是swt 由C 和 C++直接实现。。。由动态链接库的形式调用。所以要放到system32下</font>
				</span>
		</span>
<img src ="http://www.blogjava.net/hhcto/aggbug/88321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2006-12-17 10:38 <a href="http://www.blogjava.net/hhcto/archive/2006/12/17/88321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EditPlus编译Java(转载)</title><link>http://www.blogjava.net/hhcto/archive/2006/12/10/86725.html</link><dc:creator>hhcto</dc:creator><author>hhcto</author><pubDate>Sun, 10 Dec 2006 10:00:00 GMT</pubDate><guid>http://www.blogjava.net/hhcto/archive/2006/12/10/86725.html</guid><wfw:comment>http://www.blogjava.net/hhcto/comments/86725.html</wfw:comment><comments>http://www.blogjava.net/hhcto/archive/2006/12/10/86725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhcto/comments/commentRss/86725.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhcto/services/trackbacks/86725.html</trackback:ping><description><![CDATA[EditPlus是很多程序员非常熟悉的编辑工具，它以占用系统资源小、操作简便灵活、支持文件类型丰富（还能自定义文件类型）等优点而被广泛使用。<br />其实EditPlus不但有编辑程序的功能，还有灵活的编译功能，下面就简单介绍一下EditPlus对JAVA的编译设置。<br />实现对JAVA的编译<br />在配置EditPlus之前，我们先要将JAVA的运行环境安装并且调试好，这里我就不再说明了。<br />首先，从菜单“工具（Tools）”;“配置用户工具...”进入用户工具设置。<br />在类别里展开“工具”树形菜单;“用户工具”，选择“组和工具项目”中的“Group 1”，点击面板右边的“组名称...”按钮，将文本Group1”修改成“编译JAVA程序”。<br />然后选择修改的组“编译JAVA程序”，点击“添加新工具”按钮，选择程序，建立“新建程序”，选中它。<br />然后就是最重要的步骤（修改属性）：<br />1.1 添加编译功能 <br />“菜单文字”里的内容修改为“JAVAC”；<br />“命令”选择安装JDK后的BIN目录中的编译程序JAVAC.EXE，如果JDK 安装路径为“c:\jdk”，那么此路径为“c:\jdk\bin\javac.exe”；<br />“参数”选择“文件名称”，即显示为“$(FileName)”；<br />“初始目录”选择“文件目录”，显示为“$(FileDir)”；选择“捕获输出”复选框。<br />1.2 添加执行功能<br />“菜单文字”里的内容修改为“JAVA”；<br />“命令”选择安装JDK后的BIN目录中的编译程序JAVA.EXE，路径为“c:\jdk\bin\java.exe”；<br />“参数”选择“文件名（不含扩展名）”，即显示为“$(FileNameNoExt)”；<br />“初始目录”选择“文件目录”，显示为“$(FileDir)”；选择“捕获输出”复选框。<br />这样就完成了基本的配置工作，下面来试着编写一个JAVA程序来测试一下（如图），编译的所有信息都会显示在输出窗口中，双击某一行错误信息，EditPlus会自动定位到出错行 <br />转自（<a href="http://www.neeao.com/blog/article.asp?id=2400">http://www.neeao.com/blog/article.asp?id=2400</a>）<br /><img src ="http://www.blogjava.net/hhcto/aggbug/86725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhcto/" target="_blank">hhcto</a> 2006-12-10 18:00 <a href="http://www.blogjava.net/hhcto/archive/2006/12/10/86725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>