<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-30773219</id><updated>2009-02-20T22:17:14.913-08:00</updated><title type='text'>TLW_RAY's WORLD</title><subtitle type='html'>一些文章和软件。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tlw-ray.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default'/><link rel='alternate' type='text/html' href='http://tlw-ray.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>tlw_ray</name><uri>http://www.blogger.com/profile/10071800960250883087</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30773219.post-3248356421563121848</id><published>2007-03-18T21:01:00.000-07:00</published><updated>2007-07-04T02:41:16.177-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'></title><content type='html'>&lt;span style="font-family:courier new;"&gt;常见JDBC连接字符串&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1.AccessClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Connection cn = DriverManager.getConnection( "dbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=F:\\data.mdb", sUsr, sPwd); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2. MySQL (&lt;/span&gt;&lt;a class="contentlink" href="http://www.mysql.com/" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://www.mysql.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;) mm.mysql-2.0.2-bin.jar &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Class.forName("org.gjt.mm.mysql.Driver"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd ); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;或:Class.forName("com.mysql.jdbc.Driver"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mydata?user=root&amp;password=root"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;3. Microsoft SQLServer (&lt;/span&gt;&lt;a class="contentlink" href="http://jtds.sourceforge.net/" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://jtds.sourceforge.net/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Class.forName("net.sourceforge.jtds.jdbc.Driver"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd ); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;4. Microsoft SQLServer (&lt;/span&gt;&lt;a class="contentlink" href="http://www.microsoft.com/" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://www.microsoft.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master", sUsr, sPwd ); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;5. oracle (&lt;/span&gt;&lt;a class="contentlink" href="http://www.oracle.com/ip/deploy/database/oracle9i/" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://www.oracle.com/ip/deploy/database/oracle9i/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;) classes12.zip &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Class.forName("oracle.jdbc.driver.OracleDriver"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd ); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;6. Sybase (&lt;/span&gt;&lt;a class="contentlink" href="http://jtds.sourceforge.net/" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://jtds.sourceforge.net/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;) jconn2.jar &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Class.forName("com.sybase.jdbc2.jdbc.SybDriver"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd ); // (Default-Username/Password: "dba"/"sql") &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;7. ODBC &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;8.DB2Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;String url="jdbc:db2://192.9.200.108:6789/SAMPLE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cn = DriverManager.getConnection( url, sUsr, sPwd );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;9. PostgreSQL (&lt;/span&gt;&lt;a class="contentlink" href="http://www.de.postgresql.org/" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://www.de.postgresql.org/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;) pgjdbc2.jar &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Class.forName("org.postgresql.Driver"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd ); &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30773219-3248356421563121848?l=tlw-ray.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tlw-ray.blogspot.com/feeds/3248356421563121848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=30773219&amp;postID=3248356421563121848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/3248356421563121848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/3248356421563121848'/><link rel='alternate' type='text/html' href='http://tlw-ray.blogspot.com/2007/03/1.html' title=''/><author><name>tlw_ray</name><uri>http://www.blogger.com/profile/10071800960250883087</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09370014213415177207'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30773219.post-6523372448172870940</id><published>2007-03-15T09:19:00.000-07:00</published><updated>2007-07-04T02:44:27.370-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='算法'/><title type='text'></title><content type='html'>n进制整数乘法口诀表 生成器 javaScript实现：&lt;br /&gt;//value:n进制数值（char 0..f）&lt;br /&gt;//numbericSystem:进制(char 0..f)&lt;br /&gt;//return:十进制值&lt;br /&gt;function toNum(value,numbericSystem){&lt;br /&gt;//n进制转换十进制&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;//value:十进制数(Integer)&lt;br /&gt;//numbericSystem:进制(char 0..f)&lt;br /&gt;//return:n进制值（String）&lt;br /&gt;function toSys(value,numbericSystem){&lt;br /&gt;//十进制转换n进制&lt;br /&gt;}&lt;br /&gt;//multiplicand:乘数(char)&lt;br /&gt;//multiplicator:被乘数(char)&lt;br /&gt;//numbericSystem:进制(char)&lt;br /&gt;function cheng(multiplicand,multiplicator,numbericSystem:char){&lt;br /&gt;var a=toNum(multiplicand,numbericSystem);&lt;br /&gt;var b=toNum(multiplicator,numbericSystem);&lt;br /&gt;return toSys(a*b,numbericSystem);&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30773219-6523372448172870940?l=tlw-ray.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tlw-ray.blogspot.com/feeds/6523372448172870940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=30773219&amp;postID=6523372448172870940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/6523372448172870940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/6523372448172870940'/><link rel='alternate' type='text/html' href='http://tlw-ray.blogspot.com/2007/03/n-javascript-valuenchar-0.html' title=''/><author><name>tlw_ray</name><uri>http://www.blogger.com/profile/10071800960250883087</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09370014213415177207'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30773219.post-116658410170817581</id><published>2006-12-19T19:07:00.000-08:00</published><updated>2007-07-04T02:48:15.308-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game游戏'/><title type='text'></title><content type='html'>&lt;h2&gt;JavaScript的三子棋游戏&lt;/h2&gt;&lt;br /&gt;&lt;iframe border="0" align="center" src="http://tlw.ray.knight.googlepages.com/three.htm" width="95%" scrolling="no" height="700"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30773219-116658410170817581?l=tlw-ray.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tlw-ray.blogspot.com/feeds/116658410170817581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=30773219&amp;postID=116658410170817581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/116658410170817581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/116658410170817581'/><link rel='alternate' type='text/html' href='http://tlw-ray.blogspot.com/2006/12/javascript.html' title=''/><author><name>tlw_ray</name><uri>http://www.blogger.com/profile/10071800960250883087</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09370014213415177207'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30773219.post-116658218119090714</id><published>2006-12-19T18:35:00.000-08:00</published><updated>2007-07-04T02:47:36.786-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'></title><content type='html'>&lt;h1&gt;Java乱码问题一方案&lt;/h1&gt;&lt;br /&gt;&lt;h3&gt;问题介绍&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;在读取数据库或者JSP时可能出现乱码，很难猜测乱码的编码格式和内容。&lt;br /&gt;问题的根源往往是数据本身是用一种字符集或者编码方案，在读出时使用了另外一种字符集或编码方案，因此出现了乱码。&lt;br /&gt;如果我们先把得到的乱码按照读出的方案解码，先得到原本的数据内容，&lt;br /&gt;再对得到的内容按照其本身的编码方案解码，即可得到正确的值。&lt;br /&gt;一般情况下产生JAVA乱码的因由是由于：&lt;br /&gt;&lt;span style="color:red;"&gt;IE默认字符集为GB2312，Windows默认为GBK，Java则默认为Unicode，所以如果不通过一定的转换，直接在GB2312字符集上显示从GBK或Unicode得到的页面将是一片乱码。&lt;/span&gt;&lt;br /&gt;详细请参阅:&lt;a href="http://www.blogger.com/spaces.msn.com/munianhua/"&gt;树叶&amp;&amp;amp;海的BLOG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;解决思路&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;此程序的思路就是遍历所有的编码格式，对乱码进行解码再编码，来取得最初的符合逻辑的汉字或者其他文字&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;使用方法&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;把乱码贴到这个程序中点解码，程序会用所有选中的字符集对乱码解码，再重新编码。&lt;br /&gt;最终得到一些内容，其中应该有符合逻辑的内容就是了，并显示解开乱码的方案。&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;范例&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;例如：偶用第三方组件读数据库输出中文部分全是乱码。&lt;br /&gt;乱码的第一行是“XXXX”它应该对应汉字"良乡"，偶想复原它，但不知道如何复原。&lt;br /&gt;把它贴到程序中，点‘解码’发现其中一行输出：“以ISO8859_1 解码再以 GBK编码得到:良乡”，“良乡”是正确的内容，&lt;br /&gt;说明数据库中数据是GBK的，而组件用ISO8859读取了内容，当然就显示了乱码。所以通过下边的代码对取得的乱码进行处理能够的到正确的内容。&lt;br /&gt;&lt;br /&gt;String str=new String((new String("XXXX")).getBytes("ISO8859_1"),"GBK")&lt;br /&gt;&lt;br /&gt;其中XXXX是乱码本身，str就是乱码的正确内容。&lt;br /&gt;总而言之贴一些乱码进来点“解码”也许就会发现你想要的内容，同样输入正常的内容点"解码"也能看到有可能出现的乱码样式。&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Applet:&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;请先随意输入几个字符或者汉字点解码；（注意：IE需要先点击APPLET一下使它激活）&lt;br /&gt;&lt;applet height="400" archive="http://tlw.ray.knight.googlepages.com/Java.jar" width="650" code="Decoder.class"&gt;&lt;br /&gt;&lt;/applet&gt;&lt;br /&gt;&lt;br /&gt;可执行文件&lt;a href="http://tlw.ray.knight.googlepages.com/Java.jar"&gt;下载&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;系统环境:JRE5.0&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30773219-116658218119090714?l=tlw-ray.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tlw-ray.blogspot.com/feeds/116658218119090714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=30773219&amp;postID=116658218119090714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/116658218119090714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/116658218119090714'/><link rel='alternate' type='text/html' href='http://tlw-ray.blogspot.com/2006/12/java-jsp-java-iegb2312windowsgbkjavaun.html' title=''/><author><name>tlw_ray</name><uri>http://www.blogger.com/profile/10071800960250883087</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09370014213415177207'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30773219.post-116044105304675220</id><published>2006-10-09T17:42:00.000-07:00</published><updated>2007-07-04T02:47:16.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'></title><content type='html'>&lt;h1&gt;我的JTree包装autoTree&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2006-9-30完成了JTree的包装工作.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;工作需要,我需要一个方便拖动的JAVA树控件;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;于是网上寻找:找到了Instrumenter,结果发现虽然它的功能貌似全面,但是不稳定还有很多BUG.然后找到了TreeWrapper,挺漂亮,但是功能似乎并不全面;代码算是比较清晰拉.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;没办法只有自己着手写一个了.AutoTree花费2周时间,我对java并不是很熟悉.dnd,transfer都是头一次用,对transfer的理解到现在还是不清晰.不过一点点做么,再加上参考些网上的例程.最困难的时候是主体功能出来了但还存在不少BUG和缺陷的那阵,实在不想做了,于是去看了火影忍者休息休息ZZZzzzz.作程序压力还是很大的.特别是写一些初次接触的代码,可能一天内只要有两三个电话.或者一个杂事就会让你什么也写不下去了.一个电话之后原先的思路就可以RELOAD了.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;AutoTree包含dnd功能,和剪切删除复制粘贴快捷键;目前还缺少UNDO,REDO也就是前进后退功能;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;另外附带一个CellRender的例子.可以使你每个DefaultMutableTreeNode拥有各自不同的图标;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;运行环境:JRE5.0;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;这里是演示:请尝试托拽功能,Applet下存在闪烁.剪切复制粘贴的快捷键也无法使用.但如果下载作为应用程序运行这些问题就都不存在了.&lt;/p&gt;&lt;br /&gt;&lt;applet height="300" archive="http://tlw.ray.knight.googlepages.com/autoTree.jar" width="400" code="com.tlw.swing.jtree.Example"&gt;&lt;param name="_cy" value="7938"&gt;&lt;param name="_cx" value="10583"&gt;&lt;br /&gt;   对不起,您的浏览器不支持JAVA小程序,请先安装JRE5.0 &lt;/applet&gt;&lt;br /&gt;&lt;p&gt;这里是下载:&lt;a href="http://tlw.ray.knight.googlepages.com/autoTree.jar"&gt;down!&lt;/a&gt; 下载后双击即可运行.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;使用说明:在您的代码中加入new AutoTree(youTree);这个树就具备托拽以及复制粘贴的能力了;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;需要注意的事情:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1.对树进行包装之前,必须把树的renderer,model什么的都设置好.否则可能失效;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2.树节点必须是DefaultMutableTreeNode继承的,因为DefaultMutableTreeNode完全适应我的需求,我希望复用它;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;3.TreeModel必须是DefaultTreeModel.这也许是美中不足吧,也许你有自己的TreeModel如果它不是继承自DefaultTreeModel那么还是放弃使用这个AutoTree吧.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;4.树的根节点是不显示的,也就是对你的JTree调用了setRootVisible(false).至于为什么,原因很多.JTree是单根的,所以当对根节点进行操作时候必须另外处理(比如给一个空树拖入个根?在根上按delete了之类).我懒得写也觉得没必要.就像xml是单根一样,根节点必然是&amp;lt;xml&amp;gt;觉得这样也没给大家带来多少不便.所以AutoTree的根节点就当它是xml了,隐了.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;5.新发现Applet版本的会闪烁.可能里边在重绘时sleep了50,或许也需要优化一下,Applet仅仅是个演示.而且它的应用在国内好像并不是很广泛,JFC情况下闪烁就感觉不到,所以无关紧要了.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30773219-116044105304675220?l=tlw-ray.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tlw-ray.blogspot.com/feeds/116044105304675220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=30773219&amp;postID=116044105304675220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/116044105304675220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/116044105304675220'/><link rel='alternate' type='text/html' href='http://tlw-ray.blogspot.com/2006/10/jtreeautotree-2006-9-30jtree.html' title=''/><author><name>tlw_ray</name><uri>http://www.blogger.com/profile/10071800960250883087</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09370014213415177207'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30773219.post-116044077231833196</id><published>2006-10-09T17:38:00.000-07:00</published><updated>2007-07-04T02:46:50.064-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows开发'/><title type='text'></title><content type='html'>&lt;h1&gt;部署DOTNET程序&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;      这里所说的部署是也许你的程序是用DOTNET开发的,但是你在给用户安装的时候需要检测它的系统环境是否装有DOTNET,是否IE6以上版本等等.后边的例程可以用来用来检测,并运行对应的安装程序.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;      体验了DOT NET2.0后，觉得有很多改进，开发的感受很不错。于是迫不及待把正在开发的一个小项目拿了上来。升迁转换非常的顺利甚至于最后都选择放弃备份，因为我知道不会出什么错的，即使出错他也不会改我的源码所以放心大胆的转换了7个子工程。&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;      DOTNET2对于我来说最大的感激是在持久化方面做了很多工作。以前1.0的时候很多东西标记为可持久化的，但是由于其下某个子项没有这样的标记，而导致整个对象不能正常地持久化。DOTNET2下这个问题基本上没有可，该可以持久化的都可以，很爽。加入了一些能够布局的PANEL让我们对JAVA向往又少了一些。设计器也做得很漂亮，项目属性更加清晰。加上超强的STDIO2005，开发速度上可以创造一个神话。这是我要说DOTNET2一个好的方面。&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;       接下来是它不好的地方。在界面的美化方面,虽说本身界面比普通的要漂亮些但是缺乏个性化的方案;其次是部署,先安装24M的可在发行包，普通的P4竟然需要装半个小时。而且需要有不少的安装要求。&lt;/p&gt;&lt;br /&gt;&lt;table width="80%" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;h4&gt;系统需求:&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;一.操作系统支持:&lt;/h5&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Windows 2000 Service Pack 3;&lt;br /&gt;Windows 98;&lt;br /&gt;Windows 98 Second Edition;&lt;br /&gt;Windows ME;&lt;br /&gt;Windows Server 2003;&lt;br /&gt;Windows XP Service Pack 2&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;二.软件支持:&lt;/h5&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;o Windows Installer 3.0 (除 Windows 98/ME, 它们仅仅需要 Windows Installer 2.0 或更高). Windows Installer 3.1 或者更高是被推荐的.&lt;br /&gt;o IE 5.01 或者更高;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;我们的项目是发布地方单位的数据库应用程序。在国内的这些单位用机是能跑起来就行的，操作系统五花八门,什么补丁阿升级的根本无人问津。使用者的计算机水平也是令人发指。不过正因为他们的存在搞开发的可能才有市场（其实如果没有他们搞开发的就可以去搞科研了）。要说的是部署“太艰难了！”一台没打补丁的PIII win2000，打SP3补丁，安装WIN INSTALLER3，安装DOTNET2总共有可能会花去2个小时，还不包括去独立下载SP3，WIN INSTALLER3的安装包。我们的应用程序才不到1M，怎么办？谁能有一个好一点的解决方案阿让人有些怀念JAVA那些翻来覆去的PACKAGE了。&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;好了下边给出2个在WINDOWS环境下部署DOTNET的NATIVE源码是用DELPHI写的.注意我只是在XPSP2和2000下简单的测试了可行性,并没有在所有的WINDOWS系统下测试.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://tlw.ray.knight.googlepages.com/deploy_dotnet1.0.rar"&gt;部署DOTNET1.0 DELPHI源码&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://tlw.ray.knight.googlepages.com/deploy_dotnet2.0.rar"&gt;部署DOTNET2.0 DELPHI源码&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30773219-116044077231833196?l=tlw-ray.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tlw-ray.blogspot.com/feeds/116044077231833196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=30773219&amp;postID=116044077231833196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/116044077231833196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30773219/posts/default/116044077231833196'/><link rel='alternate' type='text/html' href='http://tlw-ray.blogspot.com/2006/10/dotnet-piii-win2000sp3win.html' title=''/><author><name>tlw_ray</name><uri>http://www.blogger.com/profile/10071800960250883087</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09370014213415177207'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>