标签2返回的应该是选项,为什么返回的却是选定的下标值???快结尾时的语句:label2.setText(""+e.getItem());

来源:百度知道 编辑:UC知道 时间:2024/05/29 21:28:48
源程序如下
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class java8_5 extends Applet implements ItemListener{
Label label1=new Label("喜欢的城市");
Label label2=new Label("平时喜欢的活动");
List list1=new List(4);
Choice ch=new Choice();
String City[]={"北京","上海","武汉","南京"};
public void init(){

add(label1);
ch.addItem("北京");
ch.addItem("上海");
ch.addItem("武汉");
ch.addItem("南京");
add(ch);
ch.addItemListener(this);
add(label2);
list1.add("听音乐");
list1.add("看电视");
list1.add("看电影");
list1.add("看小说");
list1.add("打球");
add(list1);
list1.addItemListener(this);

}

public void itemStateChanged(ItemEvent e){
if(e.getSource()==list1)
label2.setText(""+e.getIt

把itemStateChanged方法的代码改成下面的内容

public void itemStateChanged(ItemEvent e) {
if (e.getSource() == list1)
label2.setText("" + list1.getItem((Integer) e.getItem()));// 返回应该是选项,为什么返回了下标值
else if (e.getSource() == ch)
label1.setText(e.getItem());
}

List内容用e.getItem取出来的是索引值..

Choice用e.getItem取出来的是字符串内容..