日期:2014-05-20  浏览次数:20985 次

java 事件监听器可以同时被两个组件监听吗?怎么区分不同的组件!
比如说创建两个JComboBox对象,一个是music,一个是bcolor,如何确定事件的来源?监听器独自是一个类!

  JComboBox music=new JComboBox();
music.addItem("选择背景音乐");
music.addItem("MUSIC-1");
music.addItem("MUSIC-2");
music.addItemListener(new itemListener());


JComboBox bgcolor=new JComboBox();
bgcolor.addItem("背景颜色");
bgcolor.addItem("默认颜色");
bgcolor.addItem("红 色");
bgcolor.addItem("蓝 色");
bgcolor.addItemListener(new itemListener());


------解决方案--------------------
Java code
music.setName("music");
bgcolor.setName("bgcolor");

public void itemStateChanged(ItemEvent e){
    JComboBox combo = (JComboBox)e.getItemSelectable();
    if("music".equals(combo.getName()){ ... }
    if("bgcolor".equals(combo.getName()){ ... }
}