2017-07-17 62 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]); 
    } 

我接受任何評論,除此之外。