我写的一个程序中,有两个方法需要调用同一个read方法,而这个read在执行中会添加一个EventListener.结果,前面的那两个方法一起调用时就会抛出TooManyListenersException.
请问,是否有什么办法可以解决这一问题呢?求各位前辈支招~!

解决方案 »

  1.   

    多次添加了事件监听一般都会支持一个getXXXListener方法,你加之前先看看有没有,如果有了就不要加了
      

  2.   

    LS,我没有找到那个方法....OTZ....
    能不能请您讲具体一点?谢谢~~
      

  3.   

    你没有说清楚你用的是什么类,addXXXListener具体是什么
    有些类,如JButton之类的就会提供getActionListeners方法来获得当前已经add进去的Listener。你的这个错误主要是对那些置可以有一个Listener侦听的事件add了两个以上的Lisntener。只要想办法让add动作只做一次就可以
      

  4.   

    我做的是一个串口监听的程序,使用SerialPortEventListener.
    我知道这个错误是由于有了一个以上Lisntener引起的,可我就是想不出该怎么才能让add动作只有一次啊~...
    对不起,问题没说清楚,耽误您时间了.请您再帮帮我吧~谢谢~~
      

  5.   

    设置一个变量来确定
    如果能够察看当前设置的SerialPortEventListener最好,直接看看这个是不是null就可以了
    否则设置一个变量boolean isLisAdd,添加前判断是不是true,添加后设置为true就ok了
    注意要同步