addItem()方法与add()方法

查了api,说addItem()已过时被add取代,但是我尝试将一段程序中addItem换成add会出错?代码如下:import java.applet.Applet;
import java.awt.Graphics;
public class M extends Applet {
StringBuffer buffer;
public void init( ) {
buffer = new StringBuffer( );
addItem("initializing…");
}
public void start(){
addItem("starting…");
}
public void stop() {
addItem("stopping…");
}
public void destroy( ) {
addItem("preparing for unloading…");
}
void addItem(String newWord) {
System.out.println(newWord);
buffer.append(newWord);
repaint();
}
public void paint(Graphics g){
//画一个矩形作为Applet的显示区
g.drawRect(0, 0, getSize().width - 10,getSize().height - 10 );
//在这个矩形中写字符串
g.drawString(buffer.toString(), 5,15);
}
}
为什么不能替换,问题出在哪?

Control.AddItem(cItem [, nIndex] [, nColumn])在组合框或列表框中添加一个新数据项,并且可以指定数据项索引。
cItem
指定添加到控制中的字符串表达式。
nIndex
指定控制中放置数据项的位置。如果指定了有效的 nIndex 值,cItem 将放置在控制的正确位置。如果指定的 nIndex 已经存在,数据项将插入到这个位置,在这个数据项后面的其他所有数据项在组合框或列表框控制的列表区中向下移一个位置。如果忽略参数 nIndex,并且 Sorted 属性设置为“真”(.T.),则 cItem 数据按字母排序方式添加到队列;如果忽略参数 nIndex,并且 Sorted 属性设置为“假”(.F.),则 cItem 将添加到组合框或列表框控制的列表区未尾。
nColumn
指定控制的列,新数据项加入到此列中。默认值为 1。

void AddItem(String item)
已过时。 由 add(String) 取代。
void addItem(String item, int index)
已过时。 由 add(String, int) 取代。
这俩是在JDK1.5里被抛弃的方法,被add()方法取代,最好不用,有些版本的jdk可能会报错。

void add(String item)向滚动列表的末尾添加指定的项。
void add(String item,int index)
向滚动列表中索引指示的位置添加指定的项。索引是从零开始的。如果索引值小于零,或者索引值大于或等于列表中的项数,则将该项添加到列表的末尾。

具体详见JAVA API java.awt.List;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-29
首先,你的api和jdk版本是否统一。其次,方法被替换,那么它的参数设置也有可能变化,你是否注意到了呢。另外,你可以通过查看它的错误提示得到问题的所在啊。追问

api是1.6.0的内容如下:
void add(String item)
向滚动列表的末尾添加指定的项。
void add(String item, int index)
向滚动列表中索引指示的位置添加指定的项。
void addItem(String item)
已过时。 由 add(String) 取代。
void addItem(String item, int index)
已过时。 由 add(String, int) 取代。
api和jdk都没问题,错误提示好像是参数类型不对应,但不知怎么改,求指点。

追答

你看的是哪个类的API?

追问

哦,我错了
它下面对addItem进行了重写,并不是api里面的方法,所以add方法无法替代,是我看得不够仔细啊,呵呵。

本回答被提问者采纳
相似回答