邓华

BlogJava 联系 聚合 管理
  48 Posts :: 0 Stories :: 149 Comments :: 0 Trackbacks

#

热键篇:
TemplateAlt + /
修改处:窗口->喜好设定->工作台->按键->编辑->内容辅助。
个人习惯:Shift+SPACE(空白)
简易说明:编辑程序代码时,打sysout +Template启动键,就
会自动出现:System.out.println();
设定Template的格式:窗口->喜好设定->Java->编辑器->模板。

程序代码自动排版:Ctrl+Shift+F
修改处:窗口->喜好设定->工作台->按键->程序代码->格式。
个人习惯:Alt+Z
自动排版设定:窗口->喜好设定->Java->程序代码格式制作程序。
样式页面->将插入tab(而非空格键)以内缩,该选项取消勾选
,下面空格数目填4,这样在自动编排时会以空格4作缩排。

快速执行程序:Ctrl + F11
个人习惯:ALT+X
修改处:窗口->喜好设定->工作台->按键->执行->启动前一次的启动作业。
简易说明:第一次执行时,它会询问您执行模式,
设置好后,以后只要按这个热键,它就会快速执行。
<ALT+Z(
排版完)ATL+X(执行)>..我觉得很顺手^___^

自动汇入所需要的类别:Ctrl+Shift+O
简易说明:
假设我们没有Import任何类别时,当我们在程序里打入:

BufferedReader buf =
new BufferedReader(new InputStreamReader(System.in));

此时Eclipse会警示说没有汇入类别,这时我们只要按下Ctrl+Shift+O
,它就会自动帮我们Import类别。

查看使用类别的原始码:Ctrl+鼠标左键点击
简易说明:可以看到您所使用类别的原始码。

将选取的文字批注起来:Ctrl+/
简易说明:Debug时很方便。
修改处:窗口->喜好设定->工作台->按键->程序代码->批注

视景切换:Ctrl+F8
个人习惯:Alt+S
修改处:窗口->喜好设定->工作台->按键->窗口->下一个视景。
简易说明:可以方便我们快速切换编辑、除错等视景。

密技篇:
一套Eclipse可同时切换,英文、繁体、简体显示:
1.
首先要先安装完中文化包。
2.
在桌面的快捷方式后面加上参数即可,
英文-> -nl "zh_US"
繁体-> -nl "zh_TW"
简体-> -nl "zh_CN"
(
其它语系以此类推)
像我2.1.2中文化后,我在我桌面的Eclipse快捷方式加入参数-n1 "zh_US"
"C:\Program Files\eclipse\eclipse.exe" -n "zh_US"
接口就会变回英文语系噜。

利用Eclipse,在Word编辑文书时可不必将程序代码重新编排:
Eclipse程序编辑区的程序代码整个复制下来(Ctrl+C),直接贴(Ctrl+V)
Word
WordPad上,您将会发现在Word里的程序代码格式,跟Eclipse
所设定的完全一样,包括字型、缩排、关键词颜色。我曾试过JBuilder
GELNetBeans...使用复制贴上时,只有缩排格式一样,字型、颜
色等都不会改变。

外挂篇:
外挂安装:将外挂包下载回来后,将其解压缩后,您会发现features
plugins
2个数据夹,将里面的东西都复制或移动到Eclipsefeatures
plugins数据夹内后,重新启动Eclipse即可。

Eclipse可以像JBuilderX一样使用拖拉方式建构GUI的外挂:
1.Jigloo SWT/Swing GUI Builder

http://cloudgarden.com/jigloo/index.html
下载此版本:Jigloo plugin for Eclipse (using Java 1.4 or 1.5)
安装后即可由档案->新建->其它->GUI Form选取要建构的GUI类型。

2.Eclipse Visual Editor Project

http://www.eclipse.org/vep/
点选下方Download Page,再点选Latest Release 0.5.0进入下载。
除了VE-runtime-0.5.0.zip要下载外,以下这2个也要:
EMF build 1.1.1: (build page) (download zip)
GEF Build 2.1.2: (build page) (download zip)

3.0 M8
版本,请下载:
EMF build I200403250631
GEF Build I20040330
VE-runtime-1.0M1

安装成功后,便可由File->New->Visual Class开始UI设计。
安装成功后,即可由新建->Java->AWTSwing里选择
所要建构的GUI类型开始进行设计。VE必须配合着对应
版本,才能正常使用,否则即使安装成功,使用上仍会
有问题。

使用Eclipse来开发JSP程序:
外挂名称:lomboz(下载页面)
http://forge.objectweb.org/project/showfiles.php?group_id=97
请选择适合自己版本的lomboz下载,lomboz.212.p1.zip表示2.1.2版,
lomboz.3m7.zip
表示M7版本....以此类推。
lomboz
安装以及设置教学:
Eclipse开发JSP-教学文件

Java
exe篇:
实现方式:Eclipse搭配JSmooth(免费)
1.
先由Eclipse制作包含ManifestJAR
制作教学
2.
使用JSmooth将做好的JAR包装成EXE
JSmooth
下载页面:
http://jsmooth.sourceforge.net/index.php
3.
制作完成的exe文件,可在有装置JREWindows上执行。

Eclipse-Java
编辑器最佳设定:
编辑器字型设定:工作台->字型->Java编辑器文字字型。
(
建议设定Courier New -regular 10)

编辑器相关设定:窗口->喜好设定->Java->编辑器

外观:显示行号、强调对称显示的方括号、强调显示现行行、
显示打印边距,将其勾选,Tab宽度设4,打印编距字段设80
程序代码协助:采预设即可。
语法:可设定关键词、字符串等等的显示颜色。
附注:采预设即可。
输入:全部字段都勾选。
浮动说明:采预设即可。
导览:采预设即可。

使自动排版排出来的效果,最符合Java设计惯例的设定:
自动排版设定:窗口->喜好设定->Java->程序代码制作格式。

换行:全部不勾选。
分行:行长度上限设:80
样式:只将强制转型后插入空白勾选。
内缩空格数目:设为4

Eclipse
的教学文件:
Eclipse 3.0系列热键表 - 中英对照解说版 (by sungo) ~New~
Window+GCC+CDT用Eclipse开发C、C++ (by sungo) ~New~

其它:
扩充Eclipse的Java 开发工具(中文)
使用Eclipse开发J2EE 应用程序(中文)
使用Eclipse平台进行除错(中文)
用Eclipse进行XML 开发(中文)
开发Eclipse外挂程序(中文)
国际化您的Eclipse外挂程序(英文)
将Swing编辑器加入Eclipse(英文)
如何测试你的Eclipse plug-in符合国际市场需求(英文)

Eclipse
的相关网站:
http://eclipse-plugins.2y.net/eclipse/index.jsp
http://www.eclipseplugincentral.com/
Eclipse相关教学[简体]

 

posted @ 2006-03-16 11:53 邓华的碎碎念 阅读(122) | 评论 (0)编辑 收藏

以下以 IE 代替 Internet Explorer,以 MF 代替 Mozzila Firefox。

document.form.item 问题

现有问题:
现有代码中存在许多 document.formName.item("itemName") 这样的语句,不能在 MF 下运行

解决方法:
改用 document.formName.elements["elementName"]

集合类对象问题

现有问题:
现有代码中许多集合类对象取用时使用 (),IE 能接受,MF 不能。

解决方法:
改用 [] 作为下标运算。如:document.forms("formName") 改为 document.forms["formName"]。
又如:document.getElementsByName("inputName")(1) 改为 document.getElementsByName("inputName")[1]

window.event

现有问题:
使用 window.event 无法在 MF 上运行

解决方法:
MF 的 event 只能在事件发生的现场使用,此问题暂无法解决。可以这样变通:

原代码(可在IE中运行):

<input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit()"/>
<script language="javascript">
    function gotoSubmit() {
       alert(window.event);    // use window.event
    }
</script>

新代码(可在IE和MF中运行):

<input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit(event)"/>
<script language="javascript">
   function gotoSubmit(evt) {
      evt = evt ? evt : (window.event ? window.event : null);
      alert(evt);             // use evt
  }
</script>

此外,如果新代码中第一行不改,与老代码一样的话(即 gotoSubmit 调用没有给参数),则仍然只能在IE中运行,但不会出错。所以,这种方案 tpl 部分仍与老代码兼容。

HTML 对象的 id 作为对象名的问题

现有问题:
在 IE 中,HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能。

解决方法:
用 getElementById("idName") 代替 idName 作为对象变量使用。

用idName字符串取得对象的问题

现有问题:
在IE中,利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象,在MF 中不能。

解决方法:
用 getElementById(idName) 代替 eval(idName)。

变量名与某 HTML 对象 id 相同的问题

现有问题:
在 MF 中,因为对象 id 不作为 HTML 对象的名称,所以可以使用与 HTML 对象 id 相同的变量名,IE 中不能。

解决方法:
在声明变量时,一律加上 var ,以避免歧义,这样在 IE 中亦可正常运行。
此外,最好不要取与 HTML 对象 id 相同的变量名,以减少错误。

event.x 与 event.y 问题

现有问题:
在IE 中,event 对象有 x, y 属性,MF中没有。

解决方法:
在MF中,与event.x 等效的是 event.pageX。但event.pageX IE中没有。
故采用 event.clientX 代替 event.x。在IE 中也有这个变量。
event.clientX 与 event.pageX 有微妙的差别(当整个页面有滚动条的时候),不过大多数时候是等效的。

如果要完全一样,可以稍麻烦些:
mX = event.x ? event.x : event.pageX;
然后用 mX 代替 event.x

其它:
event.layerX 在 IE 与 MF 中都有,具体意义有无差别尚未试验。

关于frame

现有问题:
在 IE中 可以用window.testFrame取得该frame,mf中不行

解决方法:
在frame的使用方面mf和ie的最主要的区别是:
如果在frame标签中书写了以下属性:
<frame src="/xx.htm" id="frameId" name="frameName" />
那么ie可以通过id或者name访问这个frame对应的window对象
而mf只可以通过name来访问这个frame对应的window对象
例如如果上述frame标签写在最上层的window里面的htm里面,那么可以这样访问
ie: window.top.frameId或者window.top.frameName来访问这个window对象
mf: 只能这样window.top.frameName来访问这个window对象

另外,在mf和ie中都可以使用window.top.document.getElementById("frameId")来访问frame标签
并且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内容
也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内容

在mf中,自己定义的属性必须getAttribute()取得

父结点的问题

在mf中没有 parentElement parement.children  而用 parentNode parentNode.childNodes
childNodes的下标的含义在IE和MF中不同,MF使用DOM规范,childNodes中会插入空白文本节点。
一般可以通过node.getElementsByTagName()来回避这个问题。当html中节点缺失时,IE和MF对parentNode的解释不同,例如

<form>
<table>
  <input/>
</table>
</form>

MF中input.parentNode的值为form, 而IE中input.parentNode的值为空节点
MF中节点没有removeNode方法,必须使用如下方法 node.parentNode.removeChild(node)

const 问题

现有问题:
在 IE 中不能使用 const 关键字。如 const constVar = 32; 在IE中这是语法错误。

解决方法:
不使用 const ,以 var 代替。

body 对象

MF的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入之后才存在

url encoding

在js中如果书写url就直接写&不要写&amp;例如var url = 'xx.jsp?objectName=xx&amp;objectEvent=xxx';
frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器
一般会服务器报错参数没有找到
当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为&amp;
一般MF无法识别js中的&amp;

nodeName 和 tagName 问题

现有问题:
在MF中,所有节点均有 nodeName 值,但 textNode 没有 tagName 值。在 IE 中,nodeName 的使用好象
有问题(具体情况没有测试,但我的IE已经死了好几次)。

解决方法:
使用 tagName,但应检测其是否为空。

元素属性

IE下 input.type属性为只读,但是MF下可以修改

document.getElementsByName() 和 document.all[name] 的问题

现有问题:
在 IE 中,getElementsByName()、document.all[name] 均不能用来取得 div 元素(是否还有其它不能取的元素还不知道)。

posted @ 2006-03-15 13:03 邓华的碎碎念 阅读(239) | 评论 (1)编辑 收藏

总结APPFUSE在应用过程中出现的BUG,以及应用心得.

1. 在appfuse开发过程中, 如果不想设置环境变量CATELINA_HOME, 即TOMCAT位置, 可以修改properties.xml

<!-- These values are only used if not specified in build.properties -->
    
<property name="tomcat.home" value="${env.CATALINA_HOME}"/>    

将其中的values 修改为tomcat的实际路径,如: E:\dev\server\tomcat-5.0.28_appfuse

2. 如果使用的数据库为mysql5,将字符集设定成UTF-8时, 可能会出现错误:

db-load:
  [dbunit] Executing operation: CLEAN_INSERT
  [dbunit] on file:
C:\dev\eclipse\workspace\appfuse\metadata\sql\sample-data.xml
  [dbunit] with format: xml
  [dbunit] WARNING - app_user.enabled data type (1111, סbitע) not
recognized and will be ignored. See FAQ f

BUILD FAILED
C:\dev\eclipse\workspace\appfuse\build.xml:672:
org.dbunit.dataset.NoSuchColumnException: app_user.enabled 

这是1.8.2的一个BUG, 在1.9中已经解决.  如果需要用1.8.2 需要修改两个地上
   a) https://appfuse.dev.java.net/source/browse/appfuse/src/dao/org/appfuse/model/User.java?r1=1.22&r2=1.23
   b) https://appfuse.dev.java.net/source/browse/appfuse/metadata/sql/sample-data.xml?r1=1.9&r2=1.10

3. 在使用ant new初建工程的时候, 在新工程中,如果运行ant test-all 会报错

Test step verifytitle (E:\dev\work\app\password\test\web\web-tests.xml:223: )  named "<unknown>" failed with message "Wr
ong document title found! Expected "AppFuse ~ ????????????" but got "AppFuse ~ ???????????""

这个是由于appfuse测试过程中对中文的支持问题. 解决方法忘记了..-_- 
posted @ 2006-03-11 18:39 邓华的碎碎念 阅读(1354) | 评论 (1)编辑 收藏

如果有钱也是一种错,那我情愿一错再错。

娶老婆应是小昭,交朋友应是令狐冲,做男儿最好是乔峰,出来混还得是韦小宝。

所谓网虫,就是在杂志上看到下划线就想用鼠标去点。

先下手遭殃,后下手更遭殃。

废话是人际关系的第一句。

我家的金鱼今早淹死了。:_(

禽兽尚且有半点怜悯之心,而我一点也没有,所以我不是禽兽。

鸭子太嚣张,兔子太多嘴,我是猪,我很乖。

不管多大岁数的人类成员,在钱面前,一概年轻。

恶人说:"再说俺是恶人,俺就害死你!"

恶人从不搞笑,恶人要抓紧时间做恶。

子曰:"吾尝终日不食,终夜不寝,以思无益,不如上bbs也。"

天呀!我又捡到一个、分钱,赚死了啦!

面对敌人的严刑拷打,我就三个字:"我都说!"

你很漂亮,但在我们这些帅哥群里,就轮不到你了:-)

下围棋的人就是喜欢打劫。

在家靠父母,上站靠朋友。

现在的猫怎么不吃鱼,是不是bbs更好吃?

月有阴晴圆缺,猫有掉线断网,此事古难全。

视窗:供黑--客窥视你的隐私的窗口。

兄弟我先抛砖引玉,有玉的尽管砸过来。

有困难要帮,没有困难制造困难也要帮。在美人面前则修正为:有危险要救,没有危险制造危险也要救。

原以为自己挺恶的,认识了他才知道,比我还善的人几乎不存在。

俺从不写错字,但俺写通假字。

智力测验就是要看到底笨到什么程度。

男人果断显的坚定,女人果断显的轻率。

我装了一个一寸的显示器,这样可以使我的错误看起来小一些。

某人宗旨:一个臭皮匠,弄死三个诸葛亮。

我不会眼睁睁地看着你往火坑里跳,我会闭上眼睛的。

俗话说:你笑,全世界都跟着你笑;你哭,全世界只有你一个人哭。

即使使用FPE改了钱,也绝不能忘记艰苦朴素的优良作风。

在使用微机时,遇到紧急情况,请立即猛砸显示器,以保主机安全。

猫、鸡都是很难养的动物。

我一生中最后悔的事就是现在写信给你。

啥时硬件也可以COPY就好了。

理想的世界=免费电话+免费上网。

我想当皇帝,怕罗嗦;想当官,怕事多;想吃饭,怕刷锅;想揍你一顿,怕惹祸。

你的电脑中有CMOS,BIOS,CACHE,CPU四大病毒,不如两分钱处理给我算了。

微秒:新电脑变成就电脑的时间跨度。

我很忙,也很困,也很无奈,于是我决定跳楼。

不是我不小心,而是我故意的。

一个人犯错误并不困难,难的是一辈子只犯一个错误,从不改正。

听君一席话,省我十本书。

人皆养子望聪明,我被聪明误一生。

人生在世无非是让别人笑笑,偶尔笑笑别人。

长江后浪推前浪,前浪死在滩头上。
posted @ 2005-12-07 23:33 邓华的碎碎念 阅读(158) | 评论 (0)编辑 收藏

这两天,为了实现ajax的树形目录,找了很多代码. 最后确定用xloadtree.

在xloadtree的主页上, 有项目xtree 和xloadtree  一个是固定显示的树,一个是动态加载的树.

在他的隐藏目录里,有一个xtree2  地址为http://webfx.eae.net/dhtml/xtree2b/  这个是正在测试的版本, 融合了xtree和xloadtree.  更新了代码, 但还是beta版.

xloadtree 可以在各种浏览器下通用. 兼容性效果非常好.

主要的三个文件:  xtree2.js, xloadtree2.js, xtree2.css 
xloadtree2.js 主要是对ajax方式的封装, 实现异步调用. 显示树的时候,调用xtree2.js里面的代码. xtree2.css 控制树的显示式样.  在查看他的文档的时候,主要看xtree2的文档,这里面才有对树怎样进行操作. xloadtree只是个调用包装.

xtree2.js :
输出html代码的时候, 调用的是toHtml() 方法. 在这个方法中,其中最主要的是getRowHtml() 来得到每一行的输出.  方法中用 getExpandIconHtml() 来控制展开后图标的代码输出, getIconHtml()控制未展开的图标输出.  getLabelHtml() 控制文本的输出, 如果不想要图标,就把图标的输出代码屏蔽掉就OK.


关于在页面输出后,看不到源代码的调试方法:

<br/>
<INPUT type="button" name="ad" onclick="charge();" value="change">
<br/>
<TEXTAREA rows="10" cols="30" id="ttt" name="ttt"></TEXTAREA>
<br/>
<INPUT type="button" name="findnode" onclick="findnode();" value="findnode">
<br/>
<INPUT type="button" name="openpath" onclick="openpath();" value="openpath">
<script>
    
function charge(){
        document.getElementById('ttt').value
=tree.getSelected().toHtml();
    }
    
    
function findnode(){
        tree.findChildByText(document.getElementById('ttt').value,
0);
    }
    
    
function openpath(){
        tree.openPath(webFXTreeHandler.htmlToText(document.getElementById('ttt').value),true);
        tree.getSelected().expand();
    }
</script>

在页面中放置如上代码.  注意,先要获得树的句柄.  比较创建树的时候,用如下代码:

var tree = new WebFXTree("<%=rootname%>");

在展开的树点,选择后, 点击change 按钮,可以得到这个节点对应的html代码.  然后对应html可以找到相应的CSS. 这个就不多写了.

xloadtree在调用子节点树的时候,和服务器之间传输的是xml.
DTD的定义如下
<!ELEMENT tree (tree*)>
<!ATTLIST tree
            text        CDATA    #REQUIRED
            src            CDATA    #IMPLIED
            action        CDATA    #IMPLIED
            icon        CDATA    #IMPLIED
            openIcon    CDATA    #IMPLIED
            target        CDATA    #IMPLIED
>

其中 text为显示文本,  src为下级目录目录的地址. action为点击的链接. icon为图标,openIcon为节点打开后的图标. target为目标,和a标签的target用法一样.


因为xml 文件不能传送< > 这种符号, 可以采用&lt; &gt; 传送.   因为项目里需要在树上显示HTML代码,所以在js里面做了修改.  修改的部分比较多. 还没有测试有没有意外情况. 这个以后再说.


还有, 在使用过程中,有一个BUG. 是设置tabindex的. 会出错.

this.setTabIndex(this.tabIndex); 

将xtree2.js文件中的这一行屏蔽掉就行了. 当然,先要确定你不需要使用tab键定位. :)


2006- 4- 22 增加:
  在要打开指定目录树的时候 如果树里面包含html代码, 可以用如下语句
<script>try{top.tree.tree.openPath(webFXTreeHandler.htmlToText("/北京新东方学校/<font color=red><b>留学考试</b></font>/fff"),true);}catch(err){}</script>


2006-5-19
前天在同事应用的时候,出现的问题是加载过程中如果树结点为中文,就加载不上. 后来找到问题的原因是在用servlet输出xml 的时候,是用的steam的方式, 后来改成字符输出方式才正确. 如下.

            PrintWriter out=response.getWriter();
            out.write(outputXML.toString());
            out.flush();
            out.close();


2008-09-03

关于随机参数,指的是URL请求中带有一个随机参数。 这个参数,可以是当前时间,或者随机数。 用来避开浏览器的缓存

 

posted @ 2005-11-13 18:55 邓华的碎碎念 阅读(27774) | 评论 (113)编辑 收藏

仅列出标题
共5页: 上一页 1 2 3 4 5