@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
------------------------------------------------------------------------------------------------------------------------
--------------------------------------- 第二版的勘误表 --------------------------------------------
------------------------------------------------------------------------------------------------------------------------
- 封面广告的第一条“....,以最新的Eclipse3.2为写作版本”。
年初结稿时是这样的,不过现在最新的版本是Eclipse3.3,软件更新真是太快了。
- 封面广告的第三条“重写了API,....”。应该为“根据新的API重写,...”
- 封底的折页广告。“第二批:”第四本“<<Eclipse开发从入门到精通(第2版)>>”。多了“开发”两字
------------------------------------------------------------------------------------------------------------------------
--------------------------------------- 第一版的勘误表 --------------------------------------------
------------------------------------------------------------------------------------------------------------------------
对第一次印刷的勘误表
页码
|
错误位置
|
修改后的文字
|
|
前言III,第四行未尾添加进如右所示文字 |
感谢网友ksafe、卢俊、yasker、konhon、limux等校正了本书中的错误。 |
11
|
页中间
|
错:
Edition for Eclipse3.0GA&3.0.1
对:
V2.1.0 GA
(
2004.08.19
)
|
13
|
第一段的末尾
|
错:足够开发使用了。)
对:足够开发使用了;如果选
professional
项,则只能暂时使用几天)
|
27
|
从图
4.26
往下的第
4
行
|
错:
Ctrl+Alt+O
对:
Ctrl+Shift+O
。
|
31
|
第
3~7
行
|
错:
Shift + Ctrl
对:
Ctrl + Shift
(排版说明:将
Ctrl
和
Shift
两单词交换一下位置,共五对)
|
54
|
第
7
行
|
错:要想得到完整的代码请查阅本书随书光盘中的例程。
对:要得到程序的
import
引用,或完整代码,请查阅随书光盘中的相应例程。
|
第
57
页
中上部有灰色背景的代码
重新调整
|
public
class
HelloWorld extends MouseAdapter{
//
或
implements MouseListener
public
static
void
main(String[] args) {
new HelloWorld().createContent();
}
private
void
createContent() {
……
Text text1 =
new
Text(shell, SWT.BORDER);
Text text2 =
new
Text(shell, SWT.BORDER);
text1.addMouseListener(
this
);
text2.addMouseListener(
this
);
……
}
public
void
mouseDoubleClick(MouseEvent e) {
MessageDialog.openInformation(
null
, "", "Hello World");
}
}
|
89
|
"
图
10.23"
右图下标
|
错:
horizontalIndent=9
对:
horizontalIndent=90
|
114
|
倒数第三行
|
错:
TablItem
对:
TableItem
(排版说明:紧挨着,共有两个
TablItem
)
|
144
|
中间(倒数第
20
行)
|
错:正数,则
obj1
移到
obj2
之间
对:正数,则
obj1
移到
obj2
之前
|
148
|
中间部份,本页第
17
行
|
错:
tv.remove(o);
/*
*
这里只是从界面表格将其去除掉。
*
如想从数据库里删除还得写相应的数据库删除代码。
*/
对:
tv.remove(o);//
从界面上删除
//
从数据模型的
List
容器中删除
List list = (List)tv.getInput();
list.remove(o);
//
如想从数据库里删除还要写相应的数据库删除代码
|
153
|
第
7
行
|
错:
ctv.remove(o);
对:
ctv.remove(o);//
从界面上删除
((List)tv.getInput()).remove(o);//
从数据模型的
List
容器中删除
|
153
|
第
17
行
|
错:
tv.remove(o);
对:
tv.remove(o);//
从界面上删除
((List)tv.getInput()).remove(o);//
从数据模型的
List
容器中删除
|
346
|
中间(第
17
行)
|
错:
super.dispose();
Context.getInstance().removeLogoffListener(this);
Context.getInstance().dispose();
对:
Context.getInstance().removeLogoffListener(this);
Context.getInstance().dispose();
super.dispose();
(排版说明:要保证三行向右对齐。原来的第三行后缩了几个空格,是错的。)
|
416
|
中下部(倒数第
11
行)
|
错:
Lomboz3.1.0
对:
Lomboz3.0.1
|
421
|
第
8
行
|
错:图
23.12
是安装完成后的
Eclipse
目录结构。注意:
lomboz
目录下还有一个
eclipse
子目录。
对:
图
23.12
是安装完成后的
Eclipse
目录结构。
注意:
lomboz
目录下还有一个
eclipse
子目录,这是采用
Link
式插件安装方法比较容易忽略的一个要点。
(排版说明:将“注意:
lomboz
目录
.....
”另起一行,并且加上灰色背景)
|
475
|
图
26.3
下的第一行
|
错:
Hibernate-2.7.1c.zip
对:
Hibernate-2.1.7c.zip
|
对第二次印刷的勘误表
书中页码
|
错误位置
|
修改后的文字
|
|
第27页“图4.26”下10行
|
错:空缺了步骤(3)
对:将步骤的编号依次上移一位
|
|
第116页倒数6-9行
|
错:
/*
* 创建一个Table对象,在式样里设置它可多选,全列选择。
* 并用两条语句设置它显示表头和表格线
*/
对:
/*
* 创建一个Tree对象
*/
|
|
P346倒数第14行
|
错:addLogonListener
对:addLogoffListener
|
|
第448页倒数第五行错了。
|
错:
property是关键的属性,它必须对应于LogonAction类中的一个字段。
对:
property是关键的属性,它必须对应于UserForm类(ActionForm)的一个字段
|
Feedback
P449 第10行
错:“和第24章的logon.js”
对:“和第24章的logon.jsp”
# re: 《Eclipse从入门到精通》勘误表 回复
2006-01-18 09:37 by
P458 第10行
错:“在Action程序中使用动态ActionFormt”
对:“在Action程序中使用动态ActionForm”
# re: 《Eclipse从入门到精通》勘误表 回复
2006-01-18 09:40 by
P468 倒数第19-22行,有两行重复。删除重复的倒数第19、20行
# re: 《Eclipse从入门到精通》勘误表 回复
2006-03-02 07:21 by
P332 最后一句:
IFolderLayout button = layout.createFolder("button",IPageLayout.BOTTOM, 0.8f, editorArea);
应该是
IFolderLayout button = layout.createFolder("button",IPageLayout.BOTTOM, 0.8f, "left");
# re: 《Eclipse从入门到精通》勘误表 回复
2006-04-06 23:06 by
p431第二行
type="javax.sql.DataSourcer"/>
应为
type="javax.sql.DataSource"/>
# re: 《Eclipse从入门到精通》勘误表 回复
2006-04-15 10:21 by
感谢陈勇(chenyong301@***.com)的指出错误
错误:P231 的IEditorInput没有getEditorID()方法]
解决方法一:
(1)加一IEditorInput的子接口MyEditorInput,在该子接口加一个getEditorID()方法。然后将本书的所有EditorInput由implements IEditorInput改为"implements MyEditorInput"。
(2)最后在使用的时候这样
String key=""+list.getSelectionIndex();
MyEditorInput editorInput=(MyEditorInput)list.getData(key);
String editID=editorInput.getEditorID();
解决方法二:
利用IEditorInput中显得多余的getName,把ID放到里面,最后用下面语句得到edtorID---String editID=editorInput.getName();
# re: 《Eclipse从入门到精通》勘误表 回复
2006-04-15 10:30 by
感谢陈勇(chenyong301@***.com)的指出错误.
错误:P173页,在无子结点(如书中的“桂林”)下增加一个子结点时,无法展开。
错误分析:没有把数据加入到数据模型而导致的,当时只追求完成界面效果又没有做详尽的测试而导致这个BUG。在实践编程中,必须将数据加入到setInput的数据模型中,然后再refresh或add到界面。删除结点也同样应该从数据模型中删除。
解决方案(分三步):
(1)把最后三行
if (!tv.getExpandedState(obj))
tv.expandToLevel(obj, 1);
tv.add(obj, newEntry);//增加结点
改为如下(加一行,并换一下顺序)
((ITreeEntry) obj).getChildren().add(newEntry);
tv.add(obj, newEntry);//增加结点或者tv.refresh(obj, true);
if (!tv.getExpandedState(obj))
tv.expandToLevel(obj, 1);
(2) CountryEntity
private List cities; 改为 private List cities = new ArrayList();
(3)CityEntity
private List peoples; 改为 private List peoples = new ArrayList();
说明:第2、3步改动,是为了防止第1步程序中的((ITreeEntry) obj).getChildren()返回null,从而导致null.add(newEntry);这样的错误。