一个程序,单击列表时显示商品的价格和产地,双击列表时显示广告而不显示其它。但是双击完后却显示了商品的价格和产地。我认为是双击包含了单击,
覆盖了双击的内容。怎么解决,以下是代码,问问高手,谢谢.
  
import java.awt.*;
import java.awt.event.*;
class MyFrame extends Frame implements ItemListener, ActionListener
{
 List list;
 TextArea text;
 MyFrame()
 {
  list=new List(4,false);    //list有四个商品名称
  text=new TextArea(20,20);  //text输出单击或双击结果
  list.add("苹果");
  list.add("香蕉");
  list.add("桃子");
  list.add("芒果");
  add(list,BorderLayout.NORTH);
  add(text,BorderLayout.CENTER);
  list.addItemListener()
  list.addActionListener()   
  this.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
  setVisible(true);
  setBounds(100,100,300,300);
  validate();
 }
 public void itemStateChanged(ItemEvent e)  //实现单击时显示商品价格和产地
 {
  //text.setText(null);
  text.setText(list.getSelectedItem()+":\n");
  int n=list.getSelectedIndex();
   if(n==0)
   {
    text.append("5元/斤\n"+"产自澳大利亚");
   }
   else if(n==1)
   {
    text.append("8元/斤\n"+"产自巴拿马");
   }
   else if(n==2)
   {
    text.append("4元/斤\n"+"产自台湾");
   }
   else
   {
    text.append("9/元/斤\n"+"产自厦门");
   }
 }
 
 public void actionPerformed(ActionEvent ee)    //实现双击时显示广告而不显示其他内容
    {
  //text.setText(null);
  int k=list.getSelectedIndex();
  //text.setText(list.getSelectedItem()+":\n");
  if(k==0)
   {
    text.setText("ad1:aaa");
   }
   else if(k==1)
   {
    text.setText("ad2:bbb");
   }
   else if(k==2)
   {
    text.setText("ad3:ccc");
   }
   else
   {
    text.setText("ad4:ddd");
   }
 }
 
}
class E_7_10
{
 public static void main(String args[])
 {
  new MyFrame();
 }

解决方案 »

  1.   

    楼主 你这个程序可以运行的?itemStateChanged actionPerformed 你加哪里了啊?
      

  2.   

    不好意思这几行代码忘改了:
     list.addItemListener()
      list.addActionListener() 
    改为
     list.addItemListener(this);
      list.addActionListener(this);
    改后就可以运行了 
      

  3.   


    list.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e) {
    if(e.getClickCount() == 1){
    int k = list.getSelectedIndex();
    // text.setText(list.getSelectedItem()+":\n");
    if (k == 0) {
    text.setText("ad1:aaa");
    } else if (k == 1) {
    text.setText("ad2:bbb");
    } else if (k == 2) {
    text.setText("ad3:ccc");
    } else {
    text.setText("ad4:ddd");
    }
    } else if(e.getClickCount() == 2){
    text.setText(list.getSelectedItem() + ":\n");
    int n = list.getSelectedIndex();
    if (n == 0) {
    text.append("5元/斤\n" + "产自澳大利亚");
    } else if (n == 1) {
    text.append("8元/斤\n" + "产自巴拿马");
    } else if (n == 2) {
    text.append("4元/斤\n" + "产自台湾");
    } else {
    text.append("9/元/斤\n" + "产自厦门");
    }
    }
    }
    });