如果说我用for循环建了十个Button,然后每个Button的功能都是一样的,那么一种添加事件监听器的方法是在for循环里面用Button类的addActionListener来增加监听器,这样的话就是建了十个匿名类的对象。还有一种办法是在for循环之前建一个事件监听器,比方说:
ActionListener ac=new ActionListener()
{
    //...
};
然后for循环里面每次都把ac添进去,这样就只有一个匿名类的对象。
我想问一下这两种方法有没有区别?会不会十个button用一个监听器对象会存在资源的互斥?

解决方案 »

  1.   

    主要看你的listener怎么实现。
    swing在专门线程运行,以消息队列机制触发事件,不会出现同时调用listener的问题。
      

  2.   


    你的方法一
    和你的方法二
    最大的区别就是方法二只要1个ActionListener
    而方法一要10个
    所以方法二比方法一节省资源不管你用哪种方法,注意在事件的一开始一定要判断事件源
    知道是哪个按钮,之后再进行相应的操作