2017-07-17 63 views
0

已解决!或至少是一种解决方法。猜猜我必须爬到谷歌搜索的黑暗角落,在第五页之后。 ans1.removeMouseListener(ans1.getMouseListeners()[2]); < - 从鼠标侦听器数组中移除。 [0]是JButton的基本监听者。 [1]保持效果。 [2]导致问题。删除鼠标监听器(Java) - 消耗不起作用

我决定在java中做一个简短的CYOA。答案是用jbuttons。基本上相同的按钮,不同的文本。我在游戏中添加了一项技能检查,班级以布尔值的形式返回成功。问题是,这个consume()并没有移除注册到鼠标点击的动作 - 它获得越来越多的skillcheck和“滚动”实例。相关部分:

public class b03 implements MouseListener { 

    @Override 
    public void mouseClicked(MouseEvent arg0) { 
     characters.SkillcheckParty skillcheck = new characters.SkillcheckParty(); 
     boolean success = skillcheck.scpPerception(12, -5, 40); 
     arg0.consume(); 
     Battleground.conv.ans1.addMouseListener(new b04()); 
    } 
} 

已解决!或至少是一种解决方法。猜猜我必须爬到谷歌搜索的黑暗角落,在第五页之后。 ans1.removeMouseListener(ans1.getMouseListeners()[2]); < - 从鼠标侦听器数组中移除。 [0]是JButton的基本监听者。 [1]保持效果。 [2]导致问题。

+0

如果解决了问题,请将您的解决方案作为答案发布。编辑你的问题与“解决!”被皱起了眉头。请参阅https://stackoverflow.blog/2011/07/01/its-ok-to-ask-and-answer-your-own-questions/了解更多信息 – Andreas

+0

将会做。对不起,你可以看到,新的在这里:) –

回答

0

至少有一个解决方法。猜猜我必须爬到谷歌搜索的黑暗角落,在第五页之后。

ans1.removeMouseListener(ans1.getMouseListeners()[2]); 

< - 从Mouse侦听器数组中移除。 [0]是JButton的基本监听者。 [1]保持效果。 [2]导致问题。删除所有听众:

for (int i = 1; i <= ans1.getMouseListeners().length-1; i++) { 
     ans1.removeMouseListener(ans1.getMouseListeners()[i]); 
    } 

我接受任何评论,除此之外。