Monday, October 09, 2006

我的JTree包装autoTree



2006-9-30完成了JTree的包装工作.



工作需要,我需要一个方便拖动的JAVA树控件;



于是网上寻找:找到了Instrumenter,结果发现虽然它的功能貌似全面,但是不稳定还有很多BUG.然后找到了TreeWrapper,挺漂亮,但是功能似乎并不全面;代码算是比较清晰拉.



没办法只有自己着手写一个了.AutoTree花费2周时间,我对java并不是很熟悉.dnd,transfer都是头一次用,对transfer的理解到现在还是不清晰.不过一点点做么,再加上参考些网上的例程.最困难的时候是主体功能出来了但还存在不少BUG和缺陷的那阵,实在不想做了,于是去看了火影忍者休息休息ZZZzzzz.作程序压力还是很大的.特别是写一些初次接触的代码,可能一天内只要有两三个电话.或者一个杂事就会让你什么也写不下去了.一个电话之后原先的思路就可以RELOAD了.



AutoTree包含dnd功能,和剪切删除复制粘贴快捷键;目前还缺少UNDO,REDO也就是前进后退功能;



另外附带一个CellRender的例子.可以使你每个DefaultMutableTreeNode拥有各自不同的图标;



运行环境:JRE5.0;



这里是演示:请尝试托拽功能,Applet下存在闪烁.剪切复制粘贴的快捷键也无法使用.但如果下载作为应用程序运行这些问题就都不存在了.



对不起,您的浏览器不支持JAVA小程序,请先安装JRE5.0

这里是下载:down! 下载后双击即可运行.



使用说明:在您的代码中加入new AutoTree(youTree);这个树就具备托拽以及复制粘贴的能力了;



需要注意的事情:



1.对树进行包装之前,必须把树的renderer,model什么的都设置好.否则可能失效;



2.树节点必须是DefaultMutableTreeNode继承的,因为DefaultMutableTreeNode完全适应我的需求,我希望复用它;



3.TreeModel必须是DefaultTreeModel.这也许是美中不足吧,也许你有自己的TreeModel如果它不是继承自DefaultTreeModel那么还是放弃使用这个AutoTree吧.



4.树的根节点是不显示的,也就是对你的JTree调用了setRootVisible(false).至于为什么,原因很多.JTree是单根的,所以当对根节点进行操作时候必须另外处理(比如给一个空树拖入个根?在根上按delete了之类).我懒得写也觉得没必要.就像xml是单根一样,根节点必然是<xml>觉得这样也没给大家带来多少不便.所以AutoTree的根节点就当它是xml了,隐了.



5.新发现Applet版本的会闪烁.可能里边在重绘时sleep了50,或许也需要优化一下,Applet仅仅是个演示.而且它的应用在国内好像并不是很广泛,JFC情况下闪烁就感觉不到,所以无关紧要了.

Labels:

部署DOTNET程序


这里所说的部署是也许你的程序是用DOTNET开发的,但是你在给用户安装的时候需要检测它的系统环境是否装有DOTNET,是否IE6以上版本等等.后边的例程可以用来用来检测,并运行对应的安装程序.



体验了DOT NET2.0后,觉得有很多改进,开发的感受很不错。于是迫不及待把正在开发的一个小项目拿了上来。升迁转换非常的顺利甚至于最后都选择放弃备份,因为我知道不会出什么错的,即使出错他也不会改我的源码所以放心大胆的转换了7个子工程。



DOTNET2对于我来说最大的感激是在持久化方面做了很多工作。以前1.0的时候很多东西标记为可持久化的,但是由于其下某个子项没有这样的标记,而导致整个对象不能正常地持久化。DOTNET2下这个问题基本上没有可,该可以持久化的都可以,很爽。加入了一些能够布局的PANEL让我们对JAVA向往又少了一些。设计器也做得很漂亮,项目属性更加清晰。加上超强的STDIO2005,开发速度上可以创造一个神话。这是我要说DOTNET2一个好的方面。





接下来是它不好的地方。在界面的美化方面,虽说本身界面比普通的要漂亮些但是缺乏个性化的方案;其次是部署,先安装24M的可在发行包,普通的P4竟然需要装半个小时。而且需要有不少的安装要求。



系统需求:



一.操作系统支持:


Windows 2000 Service Pack 3;
Windows 98;
Windows 98 Second Edition;
Windows ME;
Windows Server 2003;
Windows XP Service Pack 2



二.软件支持:


o Windows Installer 3.0 (除 Windows 98/ME, 它们仅仅需要 Windows Installer 2.0 或更高). Windows Installer 3.1 或者更高是被推荐的.
o IE 5.01 或者更高;






我们的项目是发布地方单位的数据库应用程序。在国内的这些单位用机是能跑起来就行的,操作系统五花八门,什么补丁阿升级的根本无人问津。使用者的计算机水平也是令人发指。不过正因为他们的存在搞开发的可能才有市场(其实如果没有他们搞开发的就可以去搞科研了)。要说的是部署“太艰难了!”一台没打补丁的PIII win2000,打SP3补丁,安装WIN INSTALLER3,安装DOTNET2总共有可能会花去2个小时,还不包括去独立下载SP3,WIN INSTALLER3的安装包。我们的应用程序才不到1M,怎么办?谁能有一个好一点的解决方案阿让人有些怀念JAVA那些翻来覆去的PACKAGE了。



好了下边给出2个在WINDOWS环境下部署DOTNET的NATIVE源码是用DELPHI写的.注意我只是在XPSP2和2000下简单的测试了可行性,并没有在所有的WINDOWS系统下测试.



部署DOTNET1.0 DELPHI源码



部署DOTNET2.0 DELPHI源码

Labels: