可参考MVC模式或看看ejb中的设计模式

解决方案 »

  1.   

    有几种方法
    1.创建扩展监听器接口的一个自定义类,在你的界面代码内使用
        MyListener a = new MyListener();
        itemNew.addActionListener(a);
      这样就分成2个文件了,你可能看上去舒服点,维护也可能容易一些
    因为可以拥有自己的构造函数与各种属性,这样的监听器能够处理更复杂的事务
    比较适合复杂的事件处理,或者同时为多个组件提供服务的监听器2.还是一个文件,监听器作为内部类被声明
      但是在事件触发时,执行在外部类中定义个一个方法,
      因为匿名类是可以调用外部类属性和方法的,如:
    public void doAction(){
        ....处理工作
    }
    itemNew.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    ...若干操作
                    doAction();
                    ...若干操作
                }
    });
    这样,你只需要注意维护那个doAction就行了
    而且你能把多个内部监听类共有的代码分离出来作为一个方法来维护
    这样比较适合较小并且事件处理不复杂的程序
      

  2.   

    Adapter 模式就很适合。你可以继承相应的Adapter, 写你需要的部分。
      

  3.   

    按  fdabobi(小爪尖尖) 的第一种方法就可以
    MyListener a = new MyListener();
        itemNew.addActionListener(a);其中
    public class MyListener implements ActionListener,MouseListener{      public void mousePressed(MouseEvent e) {
          //do something
          }       public void actionPerformed(ActionEvent e){
           //do something 
           }       //other methods.......
    }
      

  4.   

    按apollo333()所说的方法有一个问题,如果要改访问界面代码中的其它元素(如要改变界面中其它组件的状态),就不能声明为private的,是不是破坏了封装了呢?
      

  5.   

    如果你试着去用STRUTS,一切问题都解决了
      

  6.   

    可是对STRUCTS了解不多,也没有时间看了...这个复杂吗?
      

  7.   

    struts很简单的,好好看看几天就能理解的很好了!
      

  8.   

    建议先学习JavaBean,再深入点到EJB,到时候,你就自然知道了!
      

  9.   

    不用那么悬浮的 MVC struts之类的。
    问的是图形界面的问题。 
    用点设计模式就可以了!  看看这个  mediatorpublic class Mediator implements ActionListener{
        protected JFrame gui;    public void actionPerformed(ActionEvent e)
        {
    ...
        }
        
        public addToMediator(JFramegui)
        {
    this.gui = gui;
        }
    }/////////////////////////
    public class Test extends JFrame
    {
        Mediator mediator;
        JButton button;
        
        public void Test(){
            button = new JButton("...");
            button.addActionListener(mediator);
        }    public static void main(){
            ...
        }
    }给你一个简单的例子。自己动动脑筋改改,同一个界面就可以做不同的事了,只要换一个mediator.
    至少这个样子可以让你把界面和功能分开。
      

  10.   

    TO superman421(38度的雪) :
    还有一点不明白,就是在上例的Mediator类中,如何才能改变界面呢?(如界面中按钮以及TextField的状态等...)...是不是还要在Mediator的构造器中传入Test的引用呢?