hi,请教JAVA中AWT的choice(下拉列表)控件的使用问题~~~

我想建立左边一个下拉列表(其中包括各种零件),右边两个按钮,一个添加,一个删除按钮,当选择列表中的事件时,场景中有相应的反应。我的困惑在于publicvoiditemSt... 我想建立左边一个下拉列表(其中包括各种零件),右边两个按钮,一个添加,一个删除按钮,当选择列表中的事件时,场景中有相应的反应。我的困惑在于public void itemStateChanged(ItemEvent e){}和public void actionPerformed (ActionEvent e){}到底该怎么写才能实现。。。?(就70分了,系统默认只能给50或80分,如果解决问题,追加20分,先谢过了~!)
大致代码如下:
public class Addtest extends Applet implements ActionListener,ItemListener {
Choice parts;
Button addButton;
Button removeButton;
public void init() {
//添加下拉列表
Choice parts=new Choice();
parts.add("-----初始选项-----");
parts.add("red");
parts.add("blue");
parts.add("叶片");
parts.add("轴承");
parts.add("输出轴");
add(parts);
parts.reshape(68,40,120,12);
parts.addItemListener(this);
// 添加按钮
add(addButton = new java.awt.Button());
addButton.setLabel("添加");
addButton.setBackground(new Color(0xd3ceac));
addButton.setForeground(new Color(0x000000));
addButton.setLocation(192, 40);
addButton.setSize(35, 18);
addButton.setVisible(true);
//删除按钮
add(removeButton = new java.awt.Button());
removeButton.setLabel("删除");
removeButton.setBackground(new Color(0xd3ceac));
removeButton.setForeground(new Color(0x000000));
removeButton.setLocation(234, 40);
removeButton.setSize(35, 18);
removeButton.setVisible(true);

addButton.addActionListener(this);
removeButton.addActionListener(this);
}
public void itemStateChanged(ItemEvent e){}
public void actionPerformed (ActionEvent e) {
if (e.getSource() == addButton) {
if(parts.getSelectedItem()=="red"){
************//选择red时对应的操作}
else if(parts.getSelectedItem()=="blue"){
************//选择blue时对应的操作}
.............
}

else if (e.getSource() == removeButton) {
if(parts.getSelectedItem()=="red"){
************//选择red时对应的操作 }
if(parts.getSelectedItem()=="blue"){
************//选择blue时对应的操作 }

}
}
}
展开
 我来答
百度网友845f74e61
2011-07-01 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1627万
展开全部
你现在肯定会出空指针异常。

Choice parts这个对象没有被实例,因为你是为取这个对象里的值。
所以给定成了全局变量。
但是你在init()方法里双写了一个Choice parts=new Choice();
这样相当于有了一个同名的局部变量。所以得不到你想要结果。
init()方法里应该是。parts=new Choice();
shawnten88
2011-07-01
知道答主
回答量:7
采纳率:0%
帮助的人:3.9万
展开全部
关键是你要进行如何操作? itemStateChanged中可以如此写:
public void itemStateChanged(ItemEvent e){
String s = e.getItem().toString();
if(s.equals("red")) {
this.setBackground(Color.red);
} else if(s.equals("blue")) {
this.setBackground(Color.BLUE);
} else{
this.setBackground(Color.white);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式