请问下面这段程序应该怎么简写?              openItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                openListener();
            }
        });
        saveItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                saveListener();
            }
        });
        saveAsItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                saveAsListener();
            }
        });  
        exitItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                exitListener();
            }
        }); 
 
        cutItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cutListener();
            }
        });  
        copyItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                copyListener();
            }
        }); 
        pasteItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                pasteListener();
            }
        });

解决方案 »

  1.   

    addAction(openItem, "openListener");
    addAction(saveItem, "saveListener");
    .....
    private void addAction(JMenuItem jmi, String s) {
        jmi.addActionListener() {
            public void actionPerformed(ActionEvent e) {
                s();
            }
        }
    }   请问我这样为什么不能编译? 错误的原因在哪呢?
      

  2.   

    明显不行 因为java不支持你这样的语法 又不是C/C++可以搞个函数指针
      

  3.   

       jmi.addActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                s(); 
            } 
        } 这是什么?没看懂?是不是这出错了
      

  4.   

    没编译器吗?语法错了吧 jmi.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            s();
        }
    });
      

  5.   

    其实可以让代码写的更加有条理些,但是也没有哪个必要我做项目中常常是将事件单独的写出来成一个类再依此的添加这个事件
       
        if(e.getSource()==openItem){
         openListener(); 
        }
        if(e.getSource()==saveItem){
          saveListener(); 
         }
         ....
      

  6.   

    请问为什么要简写?
    你写一个鼠标事件都包括了。但是细化操作怎么办?
    鼠标包括,鼠标单击,双击,按下,抬起,移动,按住等等操作。如果只使用其中一个呢?
    维护性也差的不是一点半点。
    为什么如下
    int a = 0;
    int b = 0;
    if(a>0)
    b=a;
    这样的代码就不可以呢。正确的代码
    int a = 0;
    int b = 0;
    if(a>0){
        b=a;
    }
    为什么呢?执行上没有差别的。还不是维护和美观的问题。写代码不要光考虑怎么简单,怎么效率