Java 鼠标侦听器只有一个实例有效

Java 鼠标侦听器只有一个实例有效,java,swing,components,awt,mouselistener,Java,Swing,Components,Awt,Mouselistener,因此,我以以下方式将鼠标侦听器设置为java组件: int[] monsters = new int[12]; monsters[0] = MonsterSelector.BL_BLUE_BUFF; monsters[1] = MonsterSelector.BL_RED_BUFF; monsters[2] = MonsterSelector.BL_WOLVES; monsters[3] = MonsterSelector.BL_W

因此,我以以下方式将鼠标侦听器设置为java组件:

int[] monsters = new int[12];
        monsters[0] = MonsterSelector.BL_BLUE_BUFF;
        monsters[1] = MonsterSelector.BL_RED_BUFF;
        monsters[2] = MonsterSelector.BL_WOLVES;
        monsters[3] = MonsterSelector.BL_WRAITHS;
        monsters[4] = MonsterSelector.BL_GOLEMS;
        monsters[5] = MonsterSelector.BARON;
        monsters[6] = MonsterSelector.PU_BLUE_BUFF;
        monsters[7] = MonsterSelector.PU_RED_BUFF;
        monsters[8] = MonsterSelector.PU_WOLVES;
        monsters[9] = MonsterSelector.PU_WRAITHS;
        monsters[10] = MonsterSelector.PU_GOLEMS;
        monsters[11] = MonsterSelector.DRAGON;    
for(int monster = 1; monster < MonsterSelector.LAST+1; monster++){
        final int currentMonster = monsters[monster-1];
        ImageView iv = new ImageView(images.get(currentMonster), 50, 50);
        ivs.put(currentMonster, iv);
        ivs.get(currentMonster).addMouseListener(this); 
    }

现在的问题是,只有第一个mouselistener集真正给出了输出。其余的就不管了。我做错了什么?我不能在多个对象上设置相同的鼠标侦听器?

我猜要么是
MonsterSelector.LAST
没有设置为它应该设置的最高值。或者您正在初始化
MonsterSelector.BL_BLUE_BUFF
MonsterSelector.BL_RED_BUFF
等,使它们都具有相同的int值?

我猜
MonsterSelector.LAST
中的任何一个都没有设置为它应该具有的最高值。或者您正在初始化
MonsterSelector.BL_BLUE_BUFF
MonsterSelector.BL_RED_BUFF
等,使其具有相同的int值?

如果您替换
ivs.get(currentMonster.addMouseListener)(此项),则具有相同的行为
iv.addMouseListener(本)?您确定每个循环中的
currentMonster
都不同吗?您能否发布初始化
images
列表的代码,以及声明
MonsterSelector
常量的位置?如果其中任何一个出现问题,都可能导致此问题。您的奇怪循环习惯用法:
for(int monster=1;monsterivs.get(currentMonster.addMouseListener)(此项),则会出现相同的行为
iv.addMouseListener(本)?您确定每个循环中的
currentMonster
都不同吗?您能否发布初始化
images
列表的代码,以及声明
MonsterSelector
常量的位置?如果其中任何一个出现问题,都可能导致此问题。您的奇怪循环习惯用法:
for(int monster=1;monster    @Override
    public void mouseReleased(MouseEvent e) {

        Component src = (Component) e.getSource();

        Log.e(TAG, ""+src.getName());
    }