java - 鼠标监听器只有一个实例有效

标签 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_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); 
    }

我在我的类(class)中有以下 mouselistener 实现:

    @Override
    public void mouseReleased(MouseEvent e) {

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

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

现在的问题是只有第一个鼠标监听器集真正给出了输出。其余的只是忽略。我究竟做错了什么?我无法在多个对象上设置相同的鼠标监听器?

最佳答案

我猜想 MonsterSelector.LAST 没有设置为应有的最高值。或者您正在初始化 MonsterSelector.BL_BLUE_BUFFMonsterSelector.BL_RED_BUFF 等以使其具有相同的 int 值?

关于java - 鼠标监听器只有一个实例有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150590/

相关文章:

java - 我是否需要编写一个自定义 HttpMessageConverter 来将 List<Long> 作为参数与 RestTemplate 一起传递

java - 将具有统一映射的数据结构序列化为 CSV

java - 如何在java中获取默认日期模式?

java - 如何在 Eclipse 中禁用消息 "Parameter x is not assigned and could be declared final"?

java - 是否可以在接口(interface)中使用 setLayout() 以便 "force"实现类以使用特定布局?

java - 过滤 JTable 只有一个一列

java - 图像叠加 Java

css - Angular 6 - 如何在组件级别应用外部 css 样式表(传单)?

angular - Angular html中的箭头函数

android - 如何在Android/iOS中释放组件