如题!

解决方案 »

  1.   

    个人认为取决于设计需要。如果是简单的针对单个组件事件的简单处理,选择内部匿名类已经足够;
    但如果需要更加复杂的操作以及有对其他类的依赖,则将事件处理方法独立出来较好。如果有多个事件源共享同一个事件处理,则自然选择后者。
    本质上这是一个View和Controller耦合程度的问题。MVC架构的理想状态,是View和Controller低耦合高内聚。不过随着GUI的发展,V和C联系越来越紧密,甚至事件处理完全放在View部分,也是所谓文档-视图。
      

  2.   

    我也觉得一般事件处理放在内部类中实现比较好,但是有些情况下也有些限制,必须几个组件共用一个事件监听源,很久没用swing了,一个简单的大致的印象(或许不对)是:如果一个窗口上有两个组件,一个JButton,一个JTextArea,如果要单击按钮后将焦点转移到文本区域内,似乎不在窗体上放一个共享的监听器,就不容易实现。
      

  3.   

    我在写记事本的时候就全用内部类里,不会出现FutureStonesoft说的情况,只要将TextArea定义成final就可以了!