附录
B
读者提问精选(第二次印刷)
起步篇
问:为什么我的
Swt-Designer
安装总是不成功?
答:将安装步骤要点简述如下:
(
1
)下载
笔者于
2005
年
8
月重新去
http://www.swt-designer.com/
网站下载了用于
eclipse3.0.1
的
Swt-Designer
。现在它已经升级到了
4.1.0 GA 2005.07.09
,本书中使用的是
2.1.0 GA 2004.08.19
。不过两个版本的安装和使用方法基本相同。
(
2
)安装
将下载
Swt-Designer
得到的
ZIP
包解压,然后将解压后得到的“
features
、
plugins
、
designer-delete.bat
”复制到
eclipse
的安装目录下。这时因为
eclipse
的安装目录已经存在
features
、
plugins
目录,故而会弹出一个提示框问你是否覆盖目录,回答“是”。
如果还没出现第
48
页的“图
6.2
”所示界面,把
eclipse
下的
configuration
目录删除(
eclipse
在其中缓存了一些文件),再启动
eclipse
。注意:对于
Eclipse3.1
版,必须保留
configuration
目录下的
config.ini
文件。
(
3
)
link
式的安装
如果你选择第
2
章介绍的
link
式插件安装方法,则必须注意一点:
Swt-Designer
的
ZIP
包解压后,
features
、
plugins
并没有被包含在一个
eclipse
目录下,
WEB
篇的
lomboz
插件安装也有同样的问题。正确的目录结构请参考第
421
页的“图
23.12
”,在此页第八行已经有“注意”的提示,但还是有不少读者忽略了这一要点。
问:用
Swt-Designer
向导新建一个
swt
项目时,并没有自动生成
src
目录下的包“
package com.swtdesigner.ResourceManager
”和类文件
resourcemanager.java
,如第
48
页的图
6.4
,请问怎么办?
答:本书所用
Swt-Designer
是
2.1.0 GA
版,如果你用
4.1.0 GA
版,则此新版本不会自动生成
src
目录下的包和类文件。其实这个自动生成的类文件,并没有太大用处,笔者在开发时常常把它删除掉。如果你想看一下此文件的代码,在随书光盘里有它的源文件。
问:在公司无法注册激活
SWT Designer
,提示“
Transaction failed:Internal Server Error
”。
答:很可能是公司网络做了限制的原因,比如把
SWT Designer
激活时的响应端口给封掉了。可以尝试以下解决方法:
(
1
)通过一台可以上网的电脑(比如家里的)将
SWT Designer
注册好,然后把协议文件
C:\Documents and Settings\ [UserName]\Instantiations.license
从你家里复制到公司电脑上。
(
2
)书中关于
SWT Designer
的内容只占很少(仅第
6
章),第
7
章之后的
SWT/JFace
例程是完全可以脱离
SWT Designer
而运行的。
SWT Designer
仅仅是一个界面辅助设计工具,它对
SWT
编程不是必须的。你可以参照随书光盘里的视频,不必用
SWT Designer
项目创建向导就能将光盘上的项目安装起来,并顺利运行书中的所有
SWT/JFace
例程。
问:按照书上注册好了,但还是出现了“
Activation is complete.Thank you.
”
答:此句英文意思是“已完成激活”,也就是说你已经注册成功了。
问:执行
“cvs
提交
”
命令时,服务器报告错误,怎么办?错误信息如下:
myproject: cvs server: C:\WINDOWS\TEMP\cvs6C.tmp: No such file or directory
myproject: cvs [server aborted]: error diffing HelloWorld.java
答:这是由于
CVS
用户对
“C:\WINDOWS\TEMP\”
没有权限造成的,解决方法有如下三种:
(
1
)通过
CVSNT
控制面板“
Advanced
”选项卡下的“
Temporary
”,重新换一个此
CVS
用户具有读写权限的目录。
(
2
)用
Windows
管理工具把“
C:\WINDOWS\TEMP\
”的读写权限赋予此
CVS
用户。
(
3
)将此
CVS
用户设成
WINDOWS
的超级用户。
问:第
33
页有一个命令“
cvs -d c:\cvsfile passwd -a giles
”。我的系统是
windows 2000
,用户名为
i love you
,密码为
12345678
。请问就我的情况,上面这个
cvs
命令应该怎么样写才正确。
答:如果此用户名没有空格,则命令如下:
cvs -d c:\cvsfile passwd -a iloveyou
,回车后再输入两次
12345678
。如果此用户名中有空格,则可以用双引号把用户名引起来,命令如下:
cvs -d c:\cvsfile passwd -a "i love you"
。如果想更稳妥一些,建议在安装好
CVS
后,创建一个新的
windows
用户来给
cvs
用,注意:这并不要求你事先用此新
windows
用户来登录
windows
。
问:我下载的
JDK
是
1.4.2_08
版,书中所用是
1.4.2_06
版,可以吗?
答:完全可以。本书对
JDK
版不敏感,只要是
1.4.2
以上就行。理论上对
1.5
版
JDK
也支持,但本书不推荐。
问:请问
Eclipse3.1
的多国语言包有吗?
答:
Eclipse
还没有发布
3.1
版的多国语言包。备注:笔者
2005
年
9
月
8
日做的检查。
SWT/JFace
篇
问:我按照书中导入
JFace
的方法导入了
swt.jar
,编译没有任何问题,但是运行
SWT
程序时还是出现下面的异常,这是怎么回事?
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3063 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
另外我有一个关于
SWT/JFace
的疑惑:在
eclipse
环境下写的程序如果用了
SWT/JFace
包中的类,在
eclipse
下运行当然没问题,但是如果拿到一个只有
jdk
的环境下运行,
jdk
中没有它所需要的
SWT/JFace
中的类,它还能运行吗?
回答:第一个问题参考书第
49
页的“导入
SWT
的原生库”。第二个问题参考第
21
章的“项目的打包与发行”,关键在第
274
页的第二行。
问:我在运行程序时出了
java.lang.NoClassDefFoundError
异常,怎么办?异常信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/osgi/framework/InvalidSyntaxException
答:
NoClassDefFoundError
异常是因为找不到所需类引起的,对于
SWT
程序,则根本原因是没有配置好
SWT
类库。很多读者以为把
swt.jar
加入库引用,
Eclipse
界面上没有错误就行了,但
SWT
程序在运行时还需要一些其他
JAR
包来支持,如上面提示的
osgi JAR
包。解决方法如下:
(
1
)参考第
26
页的中间段落有对库引用的解释。
(
2
)参考第
48
页底部的“注意”。
(
3
)参考随书光盘的
"
第二篇
SWT_JFace
篇
(6-16
章
)\myswt"
目录下的
SWT
项目的库引用
".classpath"
文件,通过它你可以知道
SWT
项目所需要
JAR
包。
问:在练习第
53
、
55
页的例子时,我导入了
SWT
的原生库,但在调试过程还是出现了错误。错误信息如下:“
Fatal exception occurred.Program will exit
”
。
答:参考第
48
页或第
211
页的方法,先创建一个完整的
SWT
项目。注意:仅导入
SWT
的原生库是不够的,还要设置对
SWT
及其相关库的库引用等。
问:在书中第
50
页建立“
Application Window
”时,无法完成,提示如下:
This wizard is not supported in free version of the product . Swing Object construction is only available in the professional edition.
答:从出错提示“
Swing Object
……”中的
Swing
,可知你用错了一个
wizard
。
Swt-Designer free
版的只支持
SWT
不支持
Swing
,本书的内容是关于
SWT
的,和
Swing
无关。
问:为什么我写了一个继承自
Shell
类的程序(
public class PuzzleFrame extends Shell
)总是出错呢,出错信息为:
Exception in thread "main" org.eclipse.swt.SWTException: Subclassing not allowed:
答:
Shell
是可以被继承的,但
Shell
的父类
Decorations
有一个
checkSubclass ()
函数,当其子类不符合此方法的检查规则时,就会抛出异常。因此不是简单继承
Shell
就行了的,还要做一些比较复杂的工作。此外,软件设计原则告诉我们:“聚合优于继承”,如果可以不通过继承
Shell
来达到使用它的目标,那就尽量采用简单的方式吧,至少笔者在项目开发中,从未通过继承的方式来使用过
Shell
。
问:
Display.syncExec()
与
Display.asyncExec()
的区别,两者有什么不同?
答:
syncExec()
和
asyncExec()
方法是外部线程调用本地线程的桥接方法。
syncExec
是必须等待调用结束后才可以进行到后面的流程,而
asyncExec
是调用的线程无需等待就可以进行后面的流程。
问:
MessageDialog.openInfomation
,我想调整这个窗口的大小
答:不妨改用
MessageBox
类,参考第
195
页。
插件开发篇
问:书上有查找和打开编辑器的方法,但有没有得到一个编辑器对象
EditorPart
的方法?然后对这个对象可以进行操作,例如传一个参数。
答:
(
1
)第
231
页的第五行的
editor
,它就是一个编辑器(
EditorPart
)对象。
(
2
)关于给编辑器传参数,这里介绍一种间接的方法:给
EditorInput
对象增加一个属性字段,而通过
EditorPart
类中的
init
方法(第
228
页第一行),就能得到传入的
EditorInput
对象,从而取出
EditorInput
对象所携带的数据。这样数据参数用
EditorInpurt
做中间载体,就传给了
EditorPart
编辑器。
问:如果我的程序不是插件,而且传统应用程序。第
18.8
节所讲制作帮助的方法,对于我来说就无效了,请问我该如何来制作帮助呢?
答:给传统应用程序制作帮助比较麻烦,建议你看看
Eclipse
中最新的
RCP
开发,
RCP
它结合了插件和传统应用程序的优点:实际上是插件的开发方式,表面上看起来却象一个完完全全的传统应用程序。
问:第
300
页的程序出现以下错误:
java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
答:错用了连接包
mysql-connector-java-3.1.10-bin-g.jar
,应该用
mysql-connector-java-3.0.17-ga-bin.jar
WEB
篇
问:第
24
章说到把
j2src
的文件输出到
"hello\WEB-INF\classes"
下,把随书光盘上第
22
章的
sms\src
目录下的文件拷到相应目录就行了?我发现光盘的
"hello\WEB-INF\classes"
目录下并没有任何文件,我有点迷惑
*.class
文件到底应该放在哪里?
答:如果照第
433
页的“图
24.1
”所示做好了设置,则
eclipse
会自动将源文件编译成
*.class
文件,并输出到“
hello\Web-INF\classes"
目录下。所以随书光盘上没有必要在
"hello\Web-INF\classes "
目录下保留着
*.class
文件。
问:我想在
Eclipse
中加入
Struts
,看到第
25
章说把
lib
下的
*.jar
复制到
hello/WEB-INF/lib
目录下。我没有看过本书的任何一章,不知道这个
hello/Web-INF/lib
的绝对路径是多少?
答:参阅第
425
页的“图
23.20
”,绝对路径是
c:/elcipse/workspace/hello/Web-INF/lib
。另:本书
WEB
篇的每章都有前后承接关系,建议从第
23
章看起。
问:在搭建
J2EE
开发平台中,是否要安装
J2EEsdk
?
答:不需要安装。
问:我看有的书讲
Hibernate
的安装,并没有提到要使用
Tomcat
等服务器,不知是什么原因?
答:
Hibernate
并不是只能用于
B/S
结构的
WEB
开发,对于
C/S
结构的应用程序也一样可以用。也就是说,
Tomcat
等
WEB
服务器和
Hiberate
没有必然的依赖关系。
问:第
450
页的
LogonAction.java
与光盘上的代码不一致
回:此项目的代码按照开发进度,打成了不同的
CVS
版本(参考第
416
页倒数第二段的说明)。光盘代码上显示的都是
CVS
上的最终版本,当然和书上的之前版本的代码不同了。建议你先将光盘“
cvsfile
”目录安装到你的
CVS
上(安装参见光盘所带视频),这样就能从
CVS
上检出前一个版本的代码了。
问:
JSP
程序连接
MySQL
数据库出错,出错信息如下:
HTTP Status 500 -
……(省略)
root cause
Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:106)
答:从出错信息中的“
Perhaps JAVA_HOME does not point to the JDK
”,可知原因是找不到
JDK
,所以
JSP
无法编译。估计是你在安装
Tomcat
时步骤有误,检查一下第
419
的“图
23.7
”这一步。如果还不行,那就设置一个指向
JDK
目录的
Windows
环境变量
JAVA_HOME
。
问:我按第
23
章成功安装了
Tomcat5.0.28
和
lomboz
,但新建了一个
J2EE
项目后,怎么不能在项目中启动
Tomcat
了,控制台的错误信息如下:
2005-8-3 10:17:18 org.apache.coyote.http11.Http11Protocol init
严重
: Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind:8081
2005-8-3
10:17:18
org.apache.catalina.startup.Catalina load
答:注意到异常信息中的“
Address already in use: JVM_Bind:8081
”,得知
8081
端口已经被其他程序占用了。可能是你启动了两次
Tomcat
,或者是
8081
端口被其他
WEB
软件占用了。
附录C
读者提问精选(第三次印刷)
问:安装Oralce后,Eclipse无法启动,总报找不到jre的错误。
答:Eclipse只有一个依赖,就是JRE(JAVA运行时环境)。Oralce自带了一个jre1.3,所以可能会对我们装JDK的jre1.4型成冲突,Eclipse不知道要定位哪一个jre。解决方法有如下三种:
(1)在windows环境变量里,创建变量JAVA_HOME= C:\jdk,并把Path变量中c:\jdk\bin的位置提到前面
(2)运行Eclipse时加上参数:eclipse -vm c:\jdk\jre\bin\javaw
(3)将c:\jdk的jre目录复制到C:\eclipse3.0.1\eclipse目录下
问:我安装的是最新版本eclipse3.1.1,按照书上的操作方法把多国语言包安装后,已经实现大部分菜单汉化,但是还有一些菜单没有汉化。然后我又把configuration文件夹删除掉,重新打开eclipse却出现错误,Eclipse无法启动了。
答:
(1)学习本书建议使用eclipse3.0.1版。
(2)eclipse3.1.1的语言包已经分成了两个,你可能只安装了一个,所以汉化不完整。
(3)eclipse3.1.1不能删除configuaration目录,里面的config.ini必须保留。也可以在运行eclipse时加一个clean参数,如:eclipse.exe -clean
问:我在自己的电脑安装了CVSNT,我也可以用Eclipse连上它,但我的同事却连不进来。为什么?
答:连不上CVS的原因有很多种,你的情况很可能是Windows XP防火墙的原因,你关掉防火墙再试试吧。
问:行了,我把XP的防火墙关掉后,我同事可以连进来了。不过,不用防火墙,那电脑就容易中毒,有更好的解决方法吗?
答:防火墙是防黑客的,不是防病毒的。解决方法还是有的,你可以在防火墙的设置里,把CVS服务的端口号打开。具体操作如下:控制面板->高级->设置(T)...->服务->添加(D)...,打开"服务设置"窗口后,"服务描述"填"cvsnt服务";"计算机名称"填你的计算名或IP;服务的外部内部端口号填2401。
问:用Canvas显示图片,如果图片大,怎么使用滚动条?
答:new Canvas(shell, SWT.BORDER|SWT.H_SCROLL|SWT.V_SCROLL);
问:在运行Java应用程序时,可以连上数据库。但当运行插件时(即"运行时工作台")却连不上数据库了,不知为何?
答:有可能是插件没有找到mysql的jar连接包的原因。注意P299最后一段的说明。
问:我在"连接MySQL的测试程序"时出现了下面的错误,会不会是版本冲突的错误:
java.sql.BatchUpdateException: Syntax error or access violation message from server: "Unknown table engine 'lnnoDB'"
答:不是版本的错误,是你写的"lnnoDB"有问题,它的第一个字母应该是字母I(大小写不区分),不是数字1,也不是字母L。以后实践时最好复制随书光盘上的代码,以确保正确。
问:如何在RCP程序启动时打开默认的Edit,该在那里加代码?
答:WorkbenchWindowAdvisor的继承类,改写它的postWindowOpen方法
问:在Text上加了addVerifyListener后,就不能将字符复制到text中了。请问有什么好的方法既可以实现对输入的校验,又可以实现对复制的数据进行校验。
答:你想将字符以复制的方式输入到Text中,那么就不要用addVerifyListener这种在输入时就做实时检查的方式。可以选择在最后提交时,再去校验数据的方式。
问:我想将浏览器嵌入到Ecplise,请问怎么做?
答:用org.eclipse.swt.browser.Browser类。
问:有的可视化组件在SWT Desiger找不到,ScrolledComposite。但是写程序可以用它,就是没法像button按扭直接拖放,是不是要自己定制一个这样的组件用?
答:SWT Desiger中只包含了一些常用的组件,如书中所强调,一定要学会脱离SWT Desiger这类UI设计工具自己手工写界面代码。
问:我在导入随书光盘中的项目后,在运行时提示:"类路径引用的归档 D:/Eclipse/eclipse/language/eclipse/plugins/org.eclipse.core.runtime.nl1_3.0.1/nl1.jar 不存在。"请问是怎么回事?如何运行光盘中的实例?
答:出这个错误,可能是因为
(1)你没用和本书相同版本的Eclipse,或者Eclipse安装目录和本书的不一样
(2)你没有装Eclipse语言包,或者Eclipse语言包安装目录和本书的不一样
解决方法:把Eclipse的构建路径中的对org.eclipse.core.runtime.nl1_3.0.1/nl1.jar重新指定到实际的位置就可以了(构建路径在哪里,请参考本书P444图25.1)
你好,看完你写的这本《
Eclipse
从入门到精通》
,
感觉受益匪浅,此外我想请教你一个问题,如果做插件项目是否可以打包成
jar
文件来直接运行,一定要在
Eclipse
环境下点击运行
Eclipse Application
来运行吗?希望你能及时给予我答复,非常感谢你!
可以。直接将目录压缩成
jar
包就成了。
zip
格式
请问:
在《
Eclipse
从入门到精通》第
134
页中的
PeopleEntiry.java
中的代码
public Long getId() {return id;};
public void setId(Long long1) {id = long1;}
public String getName(){return name;}
public void getName(String string) {name = string;}
这些是必须要人工一行一行的输入,有没有现成的工具可以生成这些代码?
谢谢!
解决方法见图
在网上看资料说
eclipse
是调用本机的窗口组件,界面比
awt
跟
swing
要漂亮,可我在编程后发现其界面跟
awt
一样,连
swing
都赶不上,而且是导入了
swt
的原生文件的,对此问题甚有疑惑,望老师百忙中抽空看看,帮我解决这个困惑,谢谢!
祝工作顺利!
你在
windows
下运行的吗,
eclipse
本身的界面就是用
SWT
做的,看
Eclipse
就知道
SWT
的界面效果是怎么样的。
在贵书《
Eclipse
从入门到精通》
P208
最后一行写道“插件和
Eclipse
融合在一起,原
Eclipse
的一些菜单和工具栏是无法完全屏蔽的”,我目前遇到一个类似的问题。
我用
Eclipse
(
3.0.2
)
RCP
开发的产品,作为插件嵌入
Eclipse
后,菜单和
Eclipse
的混在一起
(
我的
menu
实在
plugin.xml
中实现的
)
,比如
Eclipse
有个
File
菜单,我的也有个
File
菜单。我们希望点到我的
perspective
后,只显示我们自己的菜单。最新的
Eclipse3.1.2
对此有所改进吗?
能否对此给予指导。
谢谢。
如果使用
RCP
后,就可以将菜单和工具栏是无法完全屏蔽。
陈刚
:
你好,我是一位读者,编写了一个数据库程序,在用
eclipse
打包的时候编写了
manifest.txt
文件,其中包含
Manifest-Version
,
Main-Class
和
Class-Path
的内容,但打完包后在
MANIFEST.MF
中却没有
Class-Path
的内容;另外,程序中要访问
excel
,我采用了
jxl
包,在
eclipse
下运行良好但是打完包后却不能访问
excel
了是不是缺少了
Class-Path
中的内容造成的?
急等!
谢谢
你的情况是缺乏
classpath
的设置。应该是打包过程中有一步出现了错误,请您参照
P274
页的步骤,严格按步骤执行操作。
您好:
我在做一个分词词典,这是我的毕业设计。
可是我用
swt
的各种控件时需要用到一些方法函数可是我不知道每个控件都有那些方法怎么用,
1
。请问如何察看每个控件的方法和方法如何使使用?
2
。
text
控件中已经有内容了,用什么方法可以把
text
中的内容一个字一个字的提取出来???
1
。比如查看控件的方法:参考快捷键
ALT+/
的使用
2
。
text.getText()
,得到全部的内容,然后自己再分解成一个字一个字。
陈刚
你好:
第一次,接触E
clipse,
有一些问题,可能需要你的帮助.
1:在
ToolBar
中加的按钮,怎么处理按钮图片的存放路径?书上写得不清楚.
例子是这样的:
ToolItem toolitem2 = new ToolItem(toolbar,SWT.PUSH);
toolitem2.setText("
清除
");
toolitem2.setImage(new Image(display,"icons/Remove.gif"));
icons
是文件夹吗,后面的是G
if
格式的图片.
我是这样认为的,原代码根目录创建一个
icons
文件夹,把图片放进去了,编译找不到文件位置报错!!
希望能帮助我解决这个问题(尽量详细一些):
2:关于E
clipse
最新的技术,能否介绍一点,介绍几个讨论的网站.
在此表示感谢!
icons
是文件夹,位置请参考光盘上的示例。
http://www.eclipseworld.org/bbs/index.php
是一个国内最大的
Eclipse
网站
陈
先生:
您好!
我是刚到高校任教的老师,现在在开发一个信息管理系统,由于整个项目由我负责,因此决定使用
Eclipse
环境下面
J2EE
解决方案,找到您的《
Eclipse
从入门到精通》书已经大概翻阅了一遍,但对
Eclipse
下面的
J2EE
框架开发的具体操作还是不怎么清楚,虽然理论的准备已经比较多了。所以特向您请教一下,在
Eclipse
环境下面
J2EE
的开发环境具体怎么搭建呢,都用到那些插件呢?
我打算用
IBM WebSphere Application Server Community Edition
的服务器,在
Eclipse
下面是否支持他?另外如果直接用
IBM WebSphere Application Developer
下面开发出来的东西能不能直接部署到
WASCE
服务器上面呢?
还有一个问题想请教您,就是我把信息系统做成
B/S
的架构,那么怎么在网页中布置界面呢?特别是怎么支持对
Windows Office
类文档的操作呢?
万分感谢!
朱兆辉
书中的
WEB
篇讲解了环境搭建的全过程,如果你用”
IBM WebSphere Application Server Community Edition
“,那么你可以不用
Eclipse
,
IBM
有一款
WSAD
的开发软件
(
也就是你说的
WebSphere Application Developer)
。
对于
"
用
IBM WebSphere Application Developer
下面开发出来的东西能不能直接部署到
WASCE
服务器上面
"
我不是很清楚。不过我很确信用
ant
或
maven
,即使是用记事本来开发
java
,一样可以实现全自动的布署
(
对任何服务器,包括
WASCE)
。
“怎么在网页中布置界面呢?”
界面设计取决于你们客户的需求。
“怎么支持对
Windows Office
类文档的操作”
我不知道你要做什么样的操作,如果只是读写,那么
POI
可以实现,在我的书中有
POI
的介绍。
我不知道你的“信息管理系统”具体的情况,但我这里可以给你一个备选的方案框架。
JBOSS
替代
IBM WebSphere Application Server Community Edition
Eclipse+Lomboz
替代
WSAD
数据库存储层用
Hibernate
结合
Spring
框架来简化代码
WEB
层用最流行的
struts
,
如果你想有更在丰富的界面效果,用
AJAX(
一种
JavaScrtip+XML
的
WEB
界面架构
)
我想这种方式是现在比较流行的选择,你也可以
google
出很多相关资料,最后祝你们项目顺利
您好!我注册
swt designer
时,按照您书上所述选择
swt designer,free
两项,但给我的激活号却是专业版的。并且
14
天到期后无法再申请免费版的注册号了,请问会是什么原因呢?如何解决?(请尽快回复,多谢)
我用的是
Eclipse3.1
、
Designer_v4.2.1_for_Eclipse3.1.zip
把
C:\Documents and Settings\ [UserName]\Instantiations.license
文件删除后再试试
我下载的
hibernate
都不能用,不知道是怎么回事,总是下载不对
能不能给我一个下载的地方,或者有时间能在线传给我就更好了,呵呵
我QQ2327****,
光盘的“第四篇
WEB
开发篇
(23-26)\myweb\hello\WEB-INF\lib
”目录已有
我是北京邮电大学软件学院的研究生,正在读您写的《
eclipse
从入门到精通》,感觉得您写得很细致,我从中受益匪浅。不过,我想问问,现在国内一般的公司如果搞企业信息化软件的开发,用
java
的占多大比例,另外,如果采用
java
,那么用
eclipse
的又占多大的比例呢?
java
以及
eclipse
的前景如何呢?
希望您在百忙之中能够回答我这个问题,我希望得到您的帮助。谢谢!
学好
JAVA
找工作肯定不是愁的了,
borland
公司下一版的
jbuild
将做成
eclipse
的插件形式,所以前景也就不必说了
另外,能不能用您的经验帮我简单规划一下怎样把
java
学好。我还有半年就要去工作了。谢谢!
建议你去找家公司实习,这样你自然就能找到你的方向了
我走的路是这样的:
java
基础语法
->JSP
、数据库、
weblogic->
设计模式
->struts
、
hibernate
、
eclipse/swt
陈先生您好:
我在按装完
SWT Designer
后进行注册激活时,在
Product Registration and Activation
窗口填写好相关注册信息后。可
Product Registration and Activation
窗口的下一步按扭却始终处于没激活状态。无法进行下一步的操作。且
Product Registration and Activation
窗口下显示
Please enter your first and last name
,不知如何解决?谢谢!
名字中间加一个空格
陈
老师你好:
大作
<<Eclipse
从入门到精通
>>
拜读过以后,感觉受益匪浅,但有一问题请教。
在此书的后面印刷的例子窗口显示感觉好像与我们自己做的不一样,窗口的样式很豪华,感觉很好,但不知如何实现?请在百忙之中给以解答。
谢谢
祝好
这里因为我用了
XP
的“主题”,而
eclipse
会自动使用
XP
的“主题”式样。我用的是
XP
的第三方的“苹果”主题,所以看起感觉好一些
陈
老师:
你好!谢谢抽空为我解疑!
我在用
SWT Designer
时,运行时产生了如下的错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3139 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123)
at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:125)
at test.Hello.main(Hello.java:15)
我导入了“
SWT
的原生库”,但不知导入的正不正确?我用的
SWT Designer
是
v4.1.1
、
Eclipse
是
3.1.1
。按照你书上说的路径找不到
swt-win32-3063.dll
(可能版本不同而不同),然后我导入的是
..\eclipse\plugins\com.swtdesigner_4.2.0\os\win32\x86\SWTDesigner.dll
。
但还是不行,不知哪里出问题了
?
新版把目录压缩成了
JAR
包,你把
org.eclipse.swt.win32.win32.x86_3.*.*.jar
导入就行了,里面包含了
DLL
文件,不必把这个
DLL
再取出来
>
>
陈刚
:
>
您好,我买了您的《
eclipse
》的书,我在注册
Designer_v2.1.0_for_Eclipse3.0
时
>
,我按照的就是您在视频中所用的方法,但是总是报错:
internet server error
,但
>
是我用它自带的测试网络连接时,连接又是成功的。请问这个问题怎么解决啊!?
换个时段试试,也许是对方服务器太忙的原因
>
陈先生:
>
你好,我购买了你的《
eclipse
从入门到精通》,在根据你的视频配置
cvs
的时候我
>
出现了问题,我的系统是
window xp,
我用的软件都是你说上所说的。
>
在使用
cvs
时共享项目时出现套接字异常:
Connection reset?
到底是哪里设置有问题
>
阿。
>
能解答一下吗?谢谢
把
xp
的防火墙关了,再试试
>
我在运行第8章SWT常用组件的时候,
button1.java
出现运行时错误,单击按钮以后就死机
>
>
CPU占用率100%
>
> java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IStatus
> at com.hpcau.test.Button1$1.widgetSelected(Button1.java:23)
> at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
> at com.hpcau.test.Button1.main(Button1.java:33)
>
>
我用的是Eclipse 3.1.1
>
请帮忙看看是什么原因,谢谢
>
>
谢谢:)
有些导入包没有导入,参看随书光盘的相应项目的
.classpath
文件
你好:
很抱歉要麻烦你。
刚学习
java
,上周买了本你著的《
Eclipse
从入门到精通》,照猫画虎之,水平很差,不知怎样给
TreeViewer
树中不同类型的结点添加不同的右键弹出菜单,求助与你,劳驾了。
树的一级结点是
Server
类型,二级结点是
SP
类型。(
config.xml
有配置描述)
想让一级结点的右键弹出只出现
“发送”
/
“注册
SP
”
/
“启动”
/
“停止”
二级结点的右键弹出只出现
“发送”
/
“注销
SP
”
下面是我的一个实际项目的示例
/**
* @
作者:陈刚
*/
package com.wxxr.management.admin.console.jmx.action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.actions.ActionGroup;
import com.wxxr.management.admin.console.jmx.model.ConnectionNode;
import com.wxxr.management.admin.console.jmx.model.ConnectionSetNode;
import com.wxxr.management.admin.console.jmx.model.JndiConnectionNode;
public class MyActionGroup extends ActionGroup {
private TreeViewer tv;
public MyActionGroup(TreeViewer treeViewer) {
this.tv = treeViewer;
}
private IAction createConnectionAction;
private IAction connectAction;
private IAction disconnectAction;
private IAction refreshAction;
private IAction deleteAction;
private IAction propertiesAction;
private void makeActions() {
createConnectionAction = new CreateConnectionAction(tv);
connectAction = new ConnectAction(tv);
disconnectAction = new DisconnectAction(tv);
refreshAction = new RefreshAction(tv);
deleteAction = new DeleteAction(tv);
propertiesAction = new PropertiesAction(tv);
}
public void fillContextMenu(MenuManager mgr) {
MenuManager menuMgr = (MenuManager) mgr;
makeActions();
/*
*
生成
Menu
并挂在树
Tree
上
*/
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
MyActionGroup.this.fillContextMenu1(manager);
}
});
Menu menu = menuMgr.createContextMenu(tv.getControl());
tv.getControl().setMenu(menu);
// getSite().registerContextMenu(menuMgr, treeViewer);
}
private void fillContextMenu1(IMenuManager manager) {
//Object obj = SwtUtil.getFirstSelection(tv);
Object obj = getFirstSelection(tv);
if (obj instanceof ConnectionSetNode) {
manager.add(createConnectionAction);
} else if (obj instanceof ConnectionNode) {
manager.add(connectAction);
manager.add(disconnectAction);
manager.add(refreshAction);
manager.add(new Separator());
manager.add(deleteAction);
manager.add(new Separator());
manager.add(propertiesAction);
//
boolean b = ((ConnectionNode) obj).isConnecting();
connectAction.setEnabled(!b);
disconnectAction.setEnabled(b);
refreshAction.setEnabled(b);
//
propertiesAction.setEnabled(obj instanceof JndiConnectionNode);
}
}
private Object getFirstSelection(StructuredViewer viewer) {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
return (selection).getFirstElement();
}
}
关键点在这里
ConnectionSetNode
、
ConnectionNode
就是树上的两个不同的结点
if (obj instanceof ConnectionSetNode) {
manager.add(createConnectionAction);
} else if (obj instanceof ConnectionNode) {
manager.add(connectAction);
manager.add(disconnectAction);
manager.add(refreshAction);
manager.add(new Separator());
manager.add(deleteAction);
manager.add(new Separator());
manager.add(propertiesAction);
//
boolean b = ((ConnectionNode) obj).isConnecting();
connectAction.setEnabled(!b);
disconnectAction.setEnabled(b);
refreshAction.setEnabled(b);
//
propertiesAction.setEnabled(obj instanceof JndiConnectionNode);
}
>
您好!
>
阅读了您的大作《
Eclipse
从入门到精通》,现有一个问题请教。第七章的第一个
>
例子,我就调不通。事件的“命名内部类”写法,一直报错。如下:
>
我刚开始接触
JAVA
,太菜。麻烦您百忙之中指点一下。
>
谢谢!
>
>package com.swtdes;
>
>import org.eclipse.swt.SWT;
>import org.eclipse.swt.widgets.Display;
>import org.eclipse.swt.widgets.Shell;
>import org.eclipse.swt.widgets.Text;
>import java.awt.event.*;
>import org.eclipse.jface.dialogs.*;
>
>
>public class HelloWorld {
>
> private static Text text1;
> /**
> * Launch the application
> * @param args
> */
> public static void main(String[] args) {
> final Display display = Display.getDefault();
> final Shell shell = new Shell();
> shell.setSize(500, 375);
> shell.setText("SWT Application");
> //
> shell.open();
> text1 = new Text(shell, SWT.BORDER);
>***
(出错处)
text1.addMouseListener(new MyMouseDoubleClick() );
> text1.setText("Hello World");
> text1.setBounds(85, 220, 165, 22);
> shell.layout();
> while (!shell.isDisposed()) {
> if (!display.readAndDispatch())
> display.sleep();
> }
> }
> private static final class MyMouseDoubleClick extends MouseAdapter{
> public void MyMouseDoubleClick(MouseEvent e){
> MessageDialog.openInformation(null,"","This is a test" );
> }
> }
>}
>===
>***
处:类型
Control
中的方法
addMouseListener(MouseListener)
对于自变量
>(HelloWorld.MyMouseDoubleClick)
不适用
.
有些导入包没有导入,参看随书光盘的相应项目的
.classpath
文件
>final Text text1 = new Text(shell, SWT.BORDER);
>text1.addMouseListener(new MyMouseDoubleClick() );
>text1.addMouseListener(new MouseAdapter(){
> public void mouseDoubleClick(MouseEvent e){
> MessageDialog.openInformation(null,"","Hello World!This is example!");
> }
>
> });
>
>
以上代码种:总是提示:
MouseAdapter
不能解析为类型
>
>
麻烦您解答。
有些导入包没有导入,参看随书光盘的相应项目的
.classpath
您好,陈刚先生:
我是您的新读者,以前我一直在用
jbulder
开发
java
,由于现在
eclipse
开发是免费的,又是支持无限扩展的开发工具,很是喜
爱。刚在网上买到您的书,就迫不及待的开始研究了。
然而在我安装
swt designer2.1.0
的时候还是发现了错误:
具体如下:
您在视频录象和网站上提供的连接
swt designer2.1.0
,当下载
完并解压后,只是出现了两个文件(
plugins
和
designer-delete
)
在
plugins
文件中又出现了三个文件(
com.swtdesigner.fragment.jdt.core_2.1.0,
com.swtdesigner_2.1.0
和
com.swtdesigner help_2.1.0
),如果把
plugins
和
designer-delete
这两个文件直接复制到
c:\eclipse
目录下,在打开
eclipse
后
和视频录象里导入的
designer
这个插件是不一样的。
如果在
http://www.swt-designer.com/
这个网站上下载
(SWT Designer v3.0.0 Edition for Eclipse 3.0 & RAD 6.0
2004.12.08)
这个插件就会和您在视频里演示的一样了。
我觉得也许是第一版的书和现在相差半年,版本可能有些变动,但是无论如何
您所提供的
swt designer2.1.0
要想和您视频里演示的一样那就只能下载
SWT Designer v3.0.0 Edition for Eclipse 3.0 & RAD 6.0
2004.12.08
这个版本了,希望您在百忙当中按照我说的实验一下,如果我说的
确实没错,请您在这本书第三次印刷时能够纠正这一错误,让以后的读者可以
少走弯路,我本着与您交流的态度给您提了这一建议,很喜欢您出的这本书,
写的很好,希望您今后能够多出一些这种条理清晰,结构严谨,态度认真负责的
关于
java
前沿技术的书籍,也请您在试验完后能给我回一封邮件,谢谢!
读者:刘磊
对,你说的没错。视频由于是后期录制的,所以没有注意到保持
swt designer
版本同步。谢谢你指出错误,下次改进。
你写的书的确不错
!
有
2
个问题请教你
:
19
章当中
,
我把你的
myplugin2
代码烤到本机上运行
,
但发现
view1 view2
不在透视图当中显示啊
,
而且
,view
也不是在底部显示啊
这是什么原因啊
夏军
thanks u
view
也不是在底部显示的错误已更正,参看
http://www.chengang.com.cn/
的堪误表
陈刚
:
您好!我现在在学习
SWT
,有以下几点问题,希望您能给我解答。
问题:
1
):我现在用的是
Eclipse3.1
。怎么导入
SWT
原生库。
2
):我按您的方式注册了,可是为什么
SWT
的
VE
界面顶端有
SWT Designer Pro Evaluation - 13 Days Remaining.
3
):怎么将写好的
SWT
的
GUI
应用程序做成
.EXE
,在程序可靠的前提下怎么保证
.EXE
能执行,需要注意那些。
(
1
)
新版把目录压缩成了
JAR
包,你把
org.eclipse.swt.win32.win32.x86_3.*.*.jar
导入就行了,里面包含了
DLL
文件,不必把这个
DLL
再
取出来。
(
2
)不要选择
pro
版,而是选择
free
(
3
)看书中打包一节
>
我按照你编著的书《
eclipse
从入门到精通》里的要求安装了
eclipse3.0.1
和
Designer_v2.1.0_for_Eclipse3.0,
启动之后在注册
swt
的过程中,在填写完注册的基本信息和
email
地址之后,这个注册界面中的“
next
”按钮和“
finish
”按钮始终灰显,不能单击。这就造成了不能注册,请问是什么原因?麻烦你了。谢谢。
姓名之间加一个空格
陈
先生:
你好!
我是一名大四的学生,明年6月即将毕业.我对
Java
很有兴趣,但是我觉得它牵涉的知识比较多,并且实
际岗位的要求比较多.我想找一份
Java
的工作,却发现好有困难,现特意向你咨询你对毕业生找
Java
工作
的看法,还请指教.
另外,最近在拜读你的大作
<<Eclipse
从入门到精通
>>
,觉得这本书非常好,在此以表感谢.我想问一下:
现在,对于书中所涉及的软件,我都下载最新版本可以吗?它们兼容吗?谢谢!
主要是配置的方法不能兼容,而且做为学习也没有必要下载最新版。
陈刚
你好:
您在《
Eclipse
从入门到精通》一书中讲述了“让用户电脑不必安装
JRE
环境”,对这个问题我还有些深入的话题。
拿
JRE1.3
来说,它的
lib
里仅有
rt.jar
、
i18n.jar
、
sunrsasign.jar
。对于某个
Application
来说,不会用到的
*.class
。因此是否可以把多余的
class
文件和包删除掉而做成一个定制化的
JRE
环境?有没有这方面的工具?
理论上来说是可以的,但由于我们并不知道各
class
类以及
jar
包之间的依赖关系,所以实际上很难现实手工分离精减。我也没有听说有这方面的工具。
designer
注册得不到注册码,有没有通用的,一个号可不可以多人用
我没有
通用的的注册码
。一个号应该不可以多人用。
陈
老师
你好!
我是读者单点,我正在给自己的一个课题设计作界面,然后我不知道当使用
MenuManager
和
ToolManager
来管理菜单和工具栏时,如何给
Menu
和
TooBar
里的
Action
设置诸如
“
子菜单
”
,
“
分隔栏
”
,
“
居左
”
,
“
居中
”
等样式。如何用一个给
CoolBar
里面的各个
toolBar
添加
Action
。
还有,我是从您那本书上开始入门界面编程的,所以我对于何时要用到
refresh()
、
update()
等刷新方法不太理解
,或者说没有一个概念,你能给我大致描述几个点吗?
然后,用
Button. setImage()
方法,在按钮的图像周围总是多出来灰色的空白区域(很难看),能否让图像正好覆盖住按钮呢?
很不好意思,一些简单的入门问题都要麻烦陈老师你,如果有可能的话,你那边有
SWT API
之类的说明文档能让我当字典查吗。然后对于书上的难点问题,我再来请教陈老师你!
(
1
)
TooBar
和
ToolManager
参见第
11
章
(
2
)
refresh
是刷新界面,界面会重要读取数据。
update
一般很少用到。
(
3
)
Button. setImage()
无法让图像正好覆盖住按钮,但你可以用透明背景的图片,或者把
Button
设成和图片同一底色来解决这个问题。
(
4
)
API
文档:
http://www.blogjava.net/chengang/archive/2006/05/24/47863.html
陈刚
:
你好,
我在书店看到了你的
Eclipse
从入门到精通这本书,并买了这本书,大概翻了几页,给了我很大的感触,我们中国的软件意识上也慢慢跟上国际潮流了
^_^
。我也对
Eclipse
产生了浓厚的兴趣,但是,我的一个疑惑是除了用
Eclipse
作为一个
Java
的开发环境外,对
Eclipse
工具本身,国内的公司是不是可以做点什么?
再次谢谢你给我们带来这本精彩的书!
致礼
!
吴俊飞
E-mail:
wujunf@
cpit.com.cn
谢谢你的褒奖,基于
Eclipse
插件方式的开发,特别是
RCP
,很多国内公司已经在做了。
可惜关于
RCP
方面的书市面上还没有,而我因为工作太忙的关系,也没时间去写。
希望今年能腾出时间写一本基于
RCP
实战的。
陈刚
老师您好:
我在学习您写的那本
Eclipse
书的
22
章时候,我从光盘上导入您写的
sms
这个程序试着运行,总是出现如下的错误。我查了点资料感觉上是构建路径上出了问题,但是我查了好几天也查不出到底是哪个地方出的错。请老师帮忙看看,告诉我如何解决。
还有就是您书上第
48
页下面的那个
“
注意
”
中的内容有些不是很明白,您说
“
原来项目可以继续使用,必须将
swt
,
jface
的包和相关的引用加入到构建路径中手工做较繁琐,其有简单的方法
”
简单的方法我看的不是很明白。
祝:陈老师
身体健康,工作顺利!
学生:张锋鑫
错误如下:
java.io.FileNotFoundException: E:\eclipse.properties (
系统找不到指定的文件。
)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:69)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:156)
at java.net.URL.openStream(URL.java:913)
at org.eclipse.core.launcher.Main.load(Main.java:1126)
at org.eclipse.core.launcher.Main.loadProperties(Main.java:1098)
at org.eclipse.core.launcher.Main.addBaseJars(Main.java:334)
at org.eclipse.core.launcher.Main.getDevPath(Main.java:286)
at org.eclipse.core.launcher.Main.getBootPath(Main.java:406)
at org.eclipse.core.launcher.Main.basicRun(Main.java:174)
at org.eclipse.core.launcher.Main.run(Main.java:704)
at org.eclipse.core.launcher.Main.main(Main.java:688)
你的
Eclipse
的安装路径和本书不一样,可能是导致错误的原因。
关于构建路径,参考这篇文章
http://www.blogjava.net/chengang/archive/2006/04/24/42871.html
你好,我在添加图片时遇到了麻烦,我将一幅
gif
格式的动态的图片添加到
Label
上,可是图片却变成了静态的了,请问我要怎么样才能让图片成为动态的呢?
swt
还不支持动态
GIF
,
解决方案见:
http://www.blogjava.net/chengang/archive/2006/04/19/41915.html
《
eclipse
从入门到精通》
299
页,第
22
章,
22.1.4
的安装
JDBC
连接包,其中
“
将
JAR
包加入到项目的
'
库引用
'
中
”,
这个
“
库引用
”
的图
22.12
从哪里点出来的,我找了半天都没有看到,希望能给与答复,谢谢!
着急等待中。。。
参考
P26
的图
4.25
您好:
本来不想发此邮件,但此问题一直困扰我多久,自行不能解决,网上询问不得而果,在三思量,写此信。
在书中例子
SimpleEditor1.java (P105)
中用
viewform
做底层容器,我在编写软件界面时也用了
viewform
做了底层容器,但发现在容器上置的
toolbar
中的
toolitem
项显示图片一直有问题。在创建工具栏按钮,并用
setImage
的方法加载任何图片,在
swt designer
中能看到此图片,预览中也能看到,但实际编译运行后却无法正常显示图片,图片根本看不到,甚至连按钮也看不到(图片路径绝对不会错,加载方法也不会错),不用
viewform
做底层容器时,从未遇到此类现象。疑为
viewform
的编写错误,后反复对照书中事例不曾发现任何问题,找来原书配套光盘,运行其中的事例
SimpleEditor1.java
代码,结果也是工具栏按钮无法显示图片
(
图片
icons
文件已放入新建项目下),按钮也看不见。用的是
setImage
的方法,倘若能够编译运行,说明图片引用一定正确,应该不是图片路径或跟此有关的问题,而且在不用
viewform
做底层容器的情况下,工具栏按钮编写一切正常,从未有过图片不能显示的问题。我认为是
viewform
的问题,但一直未能发现其中原委,特向您请教,如有时间空闲,希望得以答复,感激不尽。
我做了实验,确实出现了你说的那种问题。
有以下几点可以确认:
1
、图片路径没问题
2
、当不用
ViewForm
时,
ToolBar
和其按钮显示正常
所以应该是新版的
ViewForm
做了修改,或者这本身就是一个
BUG
。我发现,如果把两个按钮的
.setText
的注释掉,图片就可以显示出来真是一个很奇怪的现象,以前
3.0.1
版,图片和文字是可以同时显示的。
我是个学习
Eclipse
的新手,在注册
swt-designer
的时候老是出现
transaction failed
:
internal server error
这个提示,我在检测我的网络连接的时候显示的是
success
,但是就是无法注册成功,希望陈老师给予解答。谢谢
~~
服务器忙,你需要另找个时间去
download
陈
老师你好
:
谢谢您在百忙之中阅览我的信件
!!!
我踏入软件行业不久
,
昨天看了您写的
<>,
有种相见很晚的感觉
.
开始我装的
JDK
是
5.0
版的
,eclipse
是最新的
3.1.2
的
,
把
3.1.2.zip
解压缩到
D
盘后
,
直接点击
eclipse.exe,
发现的错误信息好像是
"
最低版本
1.4.1,
起码是
1.3.1
什么的
,
我自己翻译的
",
后来我打开了旁边的
startup.jar,
能够打开
eclipse
了
,
安装了
3.1.1
多国语言包后也能汉化
,
就是比较麻烦
.
为了日后不必要的麻烦
,
我按您的配置重新安装
:
1.
先安装
j2sdk1.4.2_06,
http://java.sun.com/products/archive/j2se/1.4.2_06/index.html,
没有装他下面的
j2re;
2.
下载
eclipse3.0.1,
解压后
,
直接点击
eclipse.exe,
报错
:an error has occurred,see the log file D:eclipseconfiguration
1143922568156.log,
我打开这个文件后
,
在最后一行发现
:
!ENTRY org.eclipse.osgi
四月
02, 2006 04:16:08.406
!MESSAGE Bundle initial@reference:file:d:/eclipse/plugins/org.eclipse.core.runtime_3.0.1/ [1] was not resolved.
每次都是这样
,
即使欢乐
jdk5.0,
也是如此
.
如果您有空
,
希望能作点提示
,
谢谢
!!
要安装
j2re,
并设置
JAVA_HOME
变量
对了我还想问一下我用
ECLIPSE3.1
应该下载什么版本的
hibernate
阿
这么多版本我都不知道那个适合?
Hibernate
的版本和
Eclipse
无关
陈
先生
:
您好
!
我最近在做一个校园的搜索器时在处理树型结构这个功能上引用了你的那本
<<ECLIPSE
从入门到精通
>>
上面的
TREEVIEWER
的例子的那些做法
,
问题是我想做成像资源文
件管理器那样的目录结构
,
把在校园里的一个个
IP
如
:10.13.0.0
到
IP
:
10.13.255.255
这个
IP
段的
FTP
服务器上的资源用树型结构(
TREEVIEWER
)把它在一个
SCROLLCOMPOSITE
上显示
出来,但你那本教程上只是提到一次性地把数据用函数
TV.setInput(inputObj)
放入内容器
里面的,而我想实现的是搜索到一个
IP
就把它里面的资源动态地加到
TREEVIEWER TV
上面
去,而不是一次性地加上去,你那本书上在这方面上提得很少,所以我想请教你应该怎么
样用你那本书上
160-174
上的例子上的方法去实现它呢?希望陈先生把详细的方法和可能用
到的函数的用法告诉我,因为你那书像函数
inputChanged
方法是怎么样实现的和它的功能
的话基本上没有提到,所以看了那个例子之后还是不太会用它。谢谢!此致
祝:
工作顺利!
生活美满!
余伟军
06.3.27
getInput()
是一个集合,加新增的数据加入到这个集合里即可,参数下面这个
Action
List<View> input = (List<View>) tv.getInput();
input.add(node);
//add into ui
tv.add(node);
public class ViewCreateAction extends Action {
private ListViewer tv;
public ViewCreateAction(ListViewer tv) {
setText("
视图
");
this.tv = tv;
}
@Override
public void setText(String text) {
super.setText("
创建
" + text);
}
public void run() {
ViewDialog dialog = new ViewDialog(null);
if (dialog.open() == TitleAreaDialog.OK) {
View node = dialog.getInput();
ConfigureManager.getInstance ().save(node);
//add into model
List<View> input = (List<View>) tv.getInput();
input.add(node);
//add into ui
tv.add(node);
}
}
}
陈刚
:
你好,我是你《
Eclipse
从入门到精通》一书的一名读者。
近日,我们老师要求我们做一个计算器的应用程序,现在我参考你的书,用
swt
做界面,可是在添加事件监听的时候遇到了问题:
我想知道
SelectionEvent
中有没有象
ActionEvent
中的
getActionCommand()
那样类似的方法,因为,我希望通过点击数字健将这个数字键对应的数字添加到文本框中,我不知道
SelectionEvent
中的什么方法能起到相应的功能,既获得按钮上字符的方法。
我上网找了很久都没找到,只能寄希望于能得到你的帮助。谢谢!
SelectionEvent.getSoure
()可以取得对数字键控件的引用。
尊敬的陈先生:
您好!我是安徽工业大学即将毕业的应届毕业生,我所学的专业是计算机软件编码与应用。几乎要学的语言我们都学了,
我感到学的太杂,根本不是怎么的精。刚好几天前我在图书馆看到你所出的书,感到挺好的。我自己感到目前在
eclipse
插件方面发展还是很好的,并且我在南京刚找到一家软件公司准备实习,这家公司所用的平台也是
eclipse
。我想问的就是:如果想要精通其一般需要多长时间和在学习中要注意哪些?在学习中最重要的是侧重于哪方面?
真诚的期待你的答复!
此致
敬礼
06 -3-27
您忠实的读者
至少需要做一个实际项目才能谈得上精通,一般熟悉则需要
2
个月左右时间(这要看你的学习能力)。要注意多练多写。插件开发侧重于
SWT
和
Plugin
也就是插件篇前面的内容,
WEB
篇可以不用看。并且建议你看看设计模式。
您好!
我是一名桂电的学生,我遇到个问题想问您一下,就是我要用
JAVA
做一个股票系统的服务器端,需要用一个表来保存一些股票的信息,基于
J2ME
客户端我倒是知道用
RMS
来保存,难道我只能用
JDBC
来建表保存么?您觉得用什么来保存好一些,能给我些建议么?
谢谢您了,麻烦您了多多见谅!
是的,
JDBC
是最基本的
JAVA
和数据库沟通的手段,当然你也可以用
Hibernate
(这也是基于
JDBC
的)
在创建插件项目时,我所生成的
myplugin
的项目图标上有个
"X",
后来发现是我的
SampleAction.java
这个文件有问题。(因为
SampleAction.java
所对应的图标也有个
"X"
)。
在
SampleAction.java
的这个程序中
public void run(IAction action) {
MessageDialog.openInformation(
window.getShell(),
"Myplugin
插件
",
"Hello
,
Eclipse world");
}
这条语句段中的
window.getShell()
说是解析不了,旁边出现一行字段
"
无法解析类型
org.eclipse.swt.widgets.Shell
。
从必需的
.class
的文件间接引用了它
"
。
不知道如何解决
希望你能从百忙之中帮我解决下这个问题。我在这里万分感激!
我所用的是
eclipse3.1.1 swt-designer4.1.1
如果
window
这个对象如果属于
SampleAction
这类,那么这样引用:
SampleAction.window.getShell()
glchengang
,您好!
我非常喜欢你写的这本书,它非常适合我们这些初学者,写得很棒!希望能和你交流,得到你的指点。
我在看第
15
章时,按照书中的介绍实现树和列表,实现
DataFactory.java
时出错。出错行为
45
行,附件有截图。
语句为
city1.setChildren(list);
该方法的参数类型为
List,
而该语句的入参
list
的类型为
ArrayList.
根据上下语句,我想不会是印刷错误,是不是那里没描述清楚?类型
List
和
ArrayList
差别很大。谢谢!
致
礼!
谢谢,你的赞赏,希望这本书能带给你一些知识。信中所提并非印刷错误。
List
的具体类型为
java.util.List
(全部代码请对照光盘上的相应代码),它是
ArrayList
的接口。估计你把它看成是
swt
的
List
了。
陈
老师:
你好!我有个问题想咨询一下你:就是利用
SWT
如何开发界面程序。简单说就是如何在一个窗体中调用另外一个窗体?我尝试了很多次没有成功!还请老师指教一二。谢谢!
此致
敬礼
获取另外一个窗口的对象就可以了
,
关键是得到对象
,
你可以参考
P222
陈刚
先生:
你好!
我最近在看您的
ECLIPSE
的书,有几处想请教一下。
1.
如何在一个
DIALOG
中的
BUTTON
添加事件监察器,按下
BUTTON
则
DIALONG
关闭。
2.(
也是我比较关心的
)
能不能给一个
TEXT
加一个监听器,监听其输入的内容,以便实现诸如关键字用其他颜色标注的功能。
望不吝赐教。
您的读者
即日
1,
参考
P183
的图
16.15
2.
可以
.
使用
addModifyListener
试试吧
陈
老师:
你好,我最近需要在
eclipse
中设置用
java
编辑
xml
的环境。需要使用的
xml parser
是
xerces
,我在
http://archive.apache.org/dist/xml/xerces-j/
上下载的
Xerces-J-bin.2.8.0.zip
,得到
resolver.jar,xercesImpl.jar,xercesSamples.jar
和
xml-apis.jar
四个
jar
文件,我想知道如何在
eclipse
中设置,将
xerces
作为
xml parser
。
我在网上找到的资料说,
1.4
之后的
jdk
中将
jaxp
作为处理
xml
的标准库,
eclipse
为了避免与之冲突,从
3.0
之后就去掉了
xerces
。
我的环境是
jdk1.5.0_06
,
eclipse3.0.1
和
xerces 2.8.0
谢谢您的帮助
如果
Eclipse
取消了
xerces,
那是指它自已不用了
,
但并不防碍你在项目中使用
xerces
第三方库的使用请参考
P261,
设置是一样的
.
陈
老师:
谢谢您的帮助,现在我的环境已经设置好了。我试着运行
ibm
教程中的一个实例,
DomOne.java,
来读入
sonnet.xml
文件,但是我不知道如何在
eclipse
中设置
DomOne
在运行时加入
xml
文件。在
cmd
中,我试了
java DomOne sonnet.xml
命令,但是出现了
Exception in thread "main" java.lang.NoClassDefFoundError: DomOne
错误。
我附上这几个文件的
zip
包,希望您能帮我看一下,谢谢。
你的
java
命令错误
,
类前面应该加上包名
,
型如这样
:java com.ibm.DomOne connet.xml
建议你找一些关于
java
命令的介绍来看看
我在
eclipse
中将
DomOne
放在工程的默认包下面,并且可以运行,但是除了通过
cmd
命令之外,可不可以直接在
eclipse
下进行
xml
文件的导入呢?
当然可以。给一段我读写
XML
文件的代码给你做参照。这是用
DOM4j
来解析
XML
文件的。
先用
ProjectUtil.getInputStream(filePath);
得到一个
InputStream
,
filePath="perportes/service.xml"
位于项目根目录下,也就是说
perportes
和
scr
目录平级。
再用
Document document = XMLUtil.getDocument(is);
得到
Document
对象。
ProjectUtil
、
XMLUtil
是我写的两个工具类,把其中的方法在下面一并给出。
注:仅供参考,如果要运行起来,你还得自已组织一下。
-------------------------------------------------------------
public void init() {
InputStream is = null;
try {
is = ProjectUtil.getInputStream(filePath);
} catch (RuntimeException e) {
//
重建功能无法实现
,
主要是
flush()
方法的文件路径无法确认
logger.error("init fault, " + filePath + "is no found ", e);
is = new ByteArrayInputStream(INIT_XML.getBytes());
}
try {
Document document = XMLUtil.getDocument(is);
if (document == null)
throw new PersistentException("document cannot be null");
rootElement = document.getRootElement();
if (rootElement == null)
throw new PersistentException("rootElement cannot be null");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
-------------------------------------------------------------
public static InputStream getInputStream(String path) {
URL url = new URL("file:" + path);
try {
return url.openStream();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
-------------------------------------------------------------
public static Document getDocument(InputStream is) {
try {
SAXReader reader = new SAXReader();
//doc = reader.read (new File("jmx.xml"));//
也可这样
return reader.read(is);
} catch (Exception e) {
logger.warn("", e);
} finally {
try {
is.close();
} catch (IOException e1) {
logger.warn("", e1);
}
}
return null;
}
我买了你的书
<<Eclipse
从入门到精通
>>
最近我装了
Linux
系统
,
应用
SWT,
照书上的例子
,
想生成一个最简单的窗口
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class HelloWorld{
public static void main(String args[]){
final Display display=Display.getDefault();
final Shell shell=new Shell();
shell.setSize(327,253);
shell.setText("SWT Application");
shell.layout();
shell.open();
while(!shell.isDisposed())
{
if(!display.readAndDispatch())
display.sleep();
}
}
}
所有的
.so ,.so.1,.so.2
文件都导入了
却提示
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-motif-3138 in java.library.path
我实在是没有办法
,
网上也没有搜索到相关的帮助
,
特意求助
?
万分的感谢
.
参照
P49
引入原生库的一节,那是
windows
的原来库,而要用
linux
下
motif
式样的原来库。而且你要下载
for linux(motif
)版的
eclipse
(见附件图)
陈刚
:
你好!
《
eclipse
从入门到精通》这本书的
423
页最上面,
lomboz
环境设置那部分,为什么将“所有的
${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed
”替换成“
${serverRootDirectory}/common/endorsed
”?
我试过了,却在创建
J2EE
项目时,设置
Targeted Servers
中没有
Apache Tomcat v5.0.x
这一项,也就是根本无法添加,但是如果不按你的书上那样改的话,就有这一项,这是为什么??
谢谢!希望给与解答!
good luck!
应该有,那个下拉框下拉后有点短,也许在前面或后面没显示出来,你用拉动条找找
陈刚
,你好!
我在看你的《
eclipse
从入门到精通》感觉写的很好。我现在使用的是
eclipse3.1.2
。遇到一个问题
,就是找不到
swt.jar ,jface.jar
。请指点,谢谢!
致
礼!
DBxiaozhu
dbxiaozhu@163.com
2006-04-20
我用的是
Eclipse3.2M6
SWT
org.eclipse.swt_3.2.0.v3229j.jar
org.eclipse.swt.win32.win32.x86_3.2.0.v3229c.jar
JFACE
的包如下:
org.eclipse.jface_3.2.0.I20060329-0010.jar
陈刚
师兄你好:
我是广州华南理工数学系的学生。。
想请教你一下问题,麻烦抽空赐教。
1.
在
eclipse
中开发
GUI
应用程序有哪几种方式??
SWT/RCP
与
SWTDesgin
开发的有什么区别???
2.
您的那本《
eclipse
从入门到精通》里介绍的是用
swtdesin
开发应用程序,但是怎么把开发好的程序导出来,我大体看了一下那本书,好像没有提到,希望赐教
学
eclipse
时间不长,希望给与指点。。
期待您的回复。。。
广州华南理工大学
03
应用数学
王兴江
1
、在
eclipse
中开发
GUI
应用程序大概有三种:(
1
)普通
SWT/JFace
桌面应用程序(
2
)插件方式(
3
)
RCP
方式(是新从插件中分立出来的一种。)
2
、
SWTDesgin
只是一个辅助工具,让用户可以通过拖拉操作来构建界面,不用
SWTDesgin
也可以。这类辅助工具还有
VE
(
Visule Edit)
3
、第
21
章专门讲了打包和发行。
陈刚
:
你好
我是你的读者,但是现在遇到了一个问题,希望能和请教.
SWT中的文本框应该只有
Text
是吧?我想利用代码在后台来控制
Text
中的文字换行
我想利用
text.insert("//n");
内部放入转意字符来达到目的,但是失败了,后来又试了些方法都没成功,所以想让您给些意见.
非常感谢您能阅读我的信件,期待着您的回信
2006/04/24 23:00
王 征
final Text text = new Text(shell, SWT.BORDER|SWT.WRAP);
text.setText("ssssssssss\naaaaaaaaaaa");
陈
老师
:
您好
我按照你的书中描述
,
在往
shell
加入
swt
控件时提示如下错误
:
---------------------------
Operation Failed
---------------------------
Internal Error: The requested operation could not be performed because of an internal error.
Please see the error log (<workspace>/.metadata directory) for more information and
report the problem, including the contents of the error log, to support@swt-designer.com.
Contact support by e-mail now?
---------------------------
是
(Y)
否
(N)
---------------------------
请给予解答
谢谢
!
Please see the error log (<workspace>/.metadata directory)
陈
老师
:
您好
,
谢谢您的回信
!
不好意思
,
我是初学者
,
看后仍不知如何解决
,swt desinger
也注册成功
,
但设计窗口是就是加不了控件
?
谢谢
!
在
(<workspace>/.metadata directory)
目录下有出错的信息文件,不过做为初学者估计看这个文件也找不到解决办法。我的建议是:暂时抛弃
swt desinger
,直接用写程序。
陈
老师
:
您好
,
谢谢您的回信
!
我直接运行你的书中例子是完全可以的
.
谢谢
!
高俊领
陈刚
:
你好,我是华北电力大学的学生,是通过看你的书知道你的邮箱的,向你请教一个问题,望不吝指教。
我做了一个界面,界面的上面有菜单栏,下面分为两个部分,左边是树形结构,右边想把我已有的
Dialog
嵌入进来,可是显示的却是一个脱离主界面的独立的对话框,请问应该怎么解决。
郑义
Dialog
不能嵌入到其他控件里,你可以考虑以下解决办法
(
1
)用插件里的视图
(
2
)把
Dialog
中的面板分解成
Dialog+Composite
,把
Composite
嵌入到其他控件。
陈刚
老师
我们毕业设计
是有关
J2EE
开发的题目
全称是****
ERP
系统可开发
,
这个题目是老师用
VB.NET
做过的
,
他带我们毕业设计
,
他让我们用
JSP+JAVABEAN+TOMCAT
用
ECLIPSE+STRUTS
开发一个基于
MVC
的系统
,
但是他自己确不会
J2EE,
让我们自己学
,
一开始什么也不说就是说让我们自己学
,
说什么锻炼我们自己学习的能力
,
已经两个月过去了
,
我还什么都不会
,
因为这个东西我也没有学过
,
一开始都不知道看什么书
,
因为我对组件开发
,
还有多层次的软件系统的开发很陌生
,
终于自己摸索了两个多月
,
老师才给我们推荐您的这本书
,
说你们自己就按书上第四篇的
WEB
开发来做毕业设计
,
然后给了我们具体题目
,
但是已经马上快要交毕业设计了
,
还有不到一个月的时间
,
我门一个小组的什么都没有做
,
不是我冤枉老师
,
这个老师真的很不负责
,
我们去找他领题目就去了两次
,
每次都是在打扑克
,
完了就说网上发到我们的邮箱里
,
这个星期
2
才发到我们邮箱里
,
是他原来做过的系统的部分内容
,
不需要全做
,
但是我还是不会做
,
在次我真的恳求您帮帮我
,
我这学期一直在找工作
,
家里也想我马上找工作
,
但是我毕业设计还没有做
,
真的不知道该怎么办
,
偶尔间想起您的邮箱
,
报着一试的态度
,
希望您能帮帮我
,
我也不是让您替我做毕业设计
,
我就是想您有没有和这个差不多的课题的实例
,
我参照一下程序
,
或者您帮帮我的设计
,
真的是万分焦急之下才找您的
,
希望得到您的答复与肯定
.
冒昧的称为您的学生
.
在附件里我把课题的要求给您发过去
.,
我似乎连这个都有些弄不懂
,
这就是我们老师给的题目
.
我觉的对您来说很简
您的学生
非常感谢
对你的境地我深表同情,也许你们去做
ERP
的毕业课题,项目量实在太大了。我从未做过
ERP
方面的系统,加上工作任务也是很紧,所以无法给你所需要的帮助。
陈刚
:老师
您好!
阅读您所编著的《
Eclipse
从入门到精通》受益匪浅,学到了不少东西。能编撰这么细腻且实用的专业著作,在当今铺天盖地的专业图书海洋中,实属罕见!在此非常感谢您为广大
JAVA
爱好者奉献的这部佳作!
这部书我基本已阅读完毕,所有实例几乎全部测试成功,多亏了您给出了完整的代码实现步骤,否则,遇到太多的问题之后,一定会转向别的同类书籍,尽管我备有其他同类专业书籍,但却从未参考过它们。
在学习本书最后一章中的
26.7.2
节“由实体类自动得到
XML
映射文件:
class2hbm
”时,遇到了问题,已困扰了我几天的时间,还望您予以帮助:
问题:按照本书
500
页的介绍,以自己电脑中的环境配置,调整了
setenv.bat
文件中的代码后,执行批处理命令:
class2hbm cn.com.chengang.sms.model.SchoolClass --output=abc.txt
,出现以下错误提示:
Exception in thread "main" java.lang.NoClassDefFoundError: D:\jdk\lib\tools/jar;
不知问题出在那里?
我的机器配置情况如下:
操作系统:
Win2000
;
Hibernate
版本:
Hibernate 2.1.7c
Hibernate
工具包:
Hibernate Extension2.1.3
JDBC
连接包:
mysql-connector-java-3.0.17-ga-bin.jar
Jdk
版本:
j2sdk-1_4_2_06-windows-i586-p.exe
Jdk
安装位置:
d:\jdk
Setenv.bat
文件内容:
@echo off
set HIBERNATE_HOME=D:\Hibernate_tools\hibernate-2.1.7c\hibernate-2.1
set HIBERNATETOOLS_HOME=%~dp0..
set JDBC_DRIVER=%HIBERNATETOOLS_HOME%\bin\mysql-connector-java-3.0.17-ga-bin.jar
set CORELIB=%HIBERNATE_HOME%\lib
set LIB=%HIBERNATETOOLS_HOME%\lib
set CP=%CLASSPATH%;%JDBC_DRIVER%;%HIBERNATE_HOME%\hibernate2.jar;%CORELIB%\commons-logging-1.0.4.jar;%CORELIB%\commons-lang-1.0.1.jar;%CORELIB%\cglib-full-2.0.2.jar;%CORELIB%\dom4j-1.4.jar;%CORELIB%\odmg-3.0.jar;%CORELIB%\xml-apis.jar;%CORELIB%\xerces-2.4.0.jar;%CORELIB%\xalan-2.4.0.jar;%LIB%\jdom.jar;%CORELIB%\commons-collections-2.1.1.jar;%LIB%\..\hibernate-tools.jar
在
D:\Hibernate_tools\hibernate-extensions-2.1.3\tools\bin
路径中,建立好以上文件之后,将原工程项中
hello\Web-INF\class
目录下的
cn
的整个目录拷入了以上路径。
我是严格按照您给出的操作步骤进行的,但出现了以上的错误信息,真实一筹莫展,还望您在百忙之中予以及时答复为盼。
谢谢!
西安一位热心读者
05/07/06
由这一句
"Exception in thread "main" java.lang.NoClassDefFoundError: D:\jdk\lib\tools/jar;"
我看主要是找到
jdk
的自带的几个
JAR
包引起的。你把
JDK
的环境变量
classpath
设上就应该可以了。