一个程序可能要实现很多事件监听,例如键盘,鼠标,按钮,文本框等.而这些组件(按钮,文本框,菜单等)可能分散到很多类之中.那么当实现如此多的XXXlistener的时候,是用一个专门的类实现所有的XXXListener好,还是只要这个类中存在按钮等组件,就让所有这样的类都自己去实现XXXlistener好呢?
还有就是,很多时候可能点击A类的按钮,但操作的确是B类中的组件,这种情况下就不好得到B对象的引用了,有的时候参数传递都乱了,是否有什么好的解决方式呢?

解决方案 »

  1.   

        关于事件监听,如果某个类里存在按钮等组件,就让这个类去实现相应的监听,也就是你说的“只要这个类中存在按钮等组件,就让所有这样的类都自己去实现XXXlistener”。
        这样做符合面向对象的编程思想,你仔细想一想就会明白。
        至于你说的第二个问题,我还尚未遇到过,也不知你到底是怎么遇到的,所以不能给予回答,抱歉!
      

  2.   

    最简单的说,好比有个类是管理JMenuBar的,有一个叫"XXX"菜单,点击它时我希望一个按钮不可用(或者更换按钮的图标等),而这个按钮是在其他类中定义的,那么该怎么得到这个按钮的引用?
      

  3.   

    其他组件你也可以用一个final引用指向它,不过可能怪怪的.
      

  4.   

    參閱一下設計模式中的observer模式