首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java中的ItemEvent和ActionEvent冲突如何解决

2011-12-22 
java中的ItemEvent和ActionEvent冲突怎么解决?一个程序,单击列表时显示商品的价格和产地,双击列表时显示广

java中的ItemEvent和ActionEvent冲突怎么解决?
一个程序,单击列表时显示商品的价格和产地,双击列表时显示广告而不显示其它。但是双击完后却显示了商品的价格和产地。我认为是双击包含了单击,
覆盖了双击的内容。怎么解决,以下是代码,问问高手,谢谢.

Java code
  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(); }} 



[解决办法]
Java code
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" + "产自厦门");            }        }    }}); 

热点排行