keyListener help me

Ola pessoal tenho um codigo de uma calculadora e funciona tudo belezinha mas preciso implementar o KeyListener da tecla ENTER nele no caso eu aperta-se ENTER ele fize-se a soma, abaixo esta o codigo algueim me da uma forca? todas teclas estao com tratamento ja menos a ENTER que nao consigo por ;/

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JPanel;
//import javax.swing.BorderFactory;
import javax.swing.JOptionPane;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.GridLayout;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Default extends JFrame implements KeyListener, ActionListener {

    private int i = 0;
    private Container cp;
    private JPanel pn;
    private JTextField campo;
    private JButton zerar;

    private JButton[] numeros   = new JButton[10];
    private JButton[] operacao  = new JButton[10];

    private String[] operacoes  = {"/", "Sqrt", "*", "%", "-", "1/x", "+/-", ".", "+", "="};
    private double memoria;
    private char operaracao_efetuada     = ' ';
    private boolean dot         = false;
    private boolean resultado   = false;

    public Default() {

        setFocusable(true);
        addKeyListener(this);
        setTitle("Calculadora Implementada");
        setSize(311, 173);
        centerJFrame(this);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);

        pn = new JPanel();
        pn.setBounds(0,40,302,100);
        pn.setLayout(new GridLayout(4, 5, 3, 1));
        pn.setFocusable(false);
// matrizes
        pn.add(numeros[7]   = new JButton("7"));
        pn.add(numeros[8]   = new JButton("8"));
        pn.add(numeros[9]   = new JButton("9"));
        pn.add(operacao[0]  = new JButton(operacoes[0]));
        pn.add(operacao[1]  = new JButton(operacoes[1]));

        pn.add(numeros[4]   = new JButton("4"));
        pn.add(numeros[5]   = new JButton("5"));
        pn.add(numeros[6]   = new JButton("6"));
        pn.add(operacao[2]  = new JButton(operacoes[2]));
        pn.add(operacao[3]  = new JButton(operacoes[3]));

        pn.add(numeros[1]   = new JButton("1"));
        pn.add(numeros[2]   = new JButton("2"));
        pn.add(numeros[3]   = new JButton("3"));
        pn.add(operacao[4]  = new JButton(operacoes[4]));
        pn.add(operacao[5]  = new JButton(operacoes[5]));

        pn.add(numeros[0]   = new JButton("0"));
        pn.add(operacao[6]  = new JButton(operacoes[6]));
        pn.add(operacao[7]  = new JButton(operacoes[7]));
        pn.add(operacao[8]  = new JButton(operacoes[8]));
        pn.add(operacao[9]  = new JButton(operacoes[9]));
        
        for(i=0;i<10;i++) {

            operacao[i].setFocusable(false);
            operacao[i].addActionListener(this);

            numeros[i].setFocusable(false);
            numeros[i].addActionListener(this);

        }

        campo = new JTextField();
        campo.setEditable(false);
        campo.setBounds(0, 8, 241, 25);
        campo.setBackground(Color.GREEN);
        campo.setFocusable(false);
        campo.setHorizontalAlignment(JTextField.RIGHT);

        zerar = new JButton("CE");
        zerar.setBounds(244, 8, 58, 25);
        zerar.setFocusable(false);
        zerar.addActionListener(this);
        zerar.setMnemonic('C');

        cp = getContentPane();
        cp.setLayout(null);
        cp.add(campo);
        cp.add(zerar);
        cp.add(pn);

    }
    private void centerJFrame (JFrame frame) {

        Dimension paneSize      = frame.getSize();
        Dimension screenSize    = frame.getToolkit().getScreenSize();
        frame.setLocation( (screenSize.width - paneSize.width) / 2, (screenSize.height - paneSize.height) / 2);

    }

    private void limpaCampo() {
        if(resultado) {
            campo.setText("");
            resultado = false;
        }
    }
    
    public void actionPerformed (ActionEvent e) {

        for(i=0;i<10;i++) {
            if(e.getSource() == numeros[i]) {
                //Limita o valor digitado a 10 caracteres
                if(campo.getText().length() <= 10) {
                    limpaCampo();
                    if(dot) {
                        campo.setText(campo.getText() + "." + i);
                        dot = false;
                    } else {
                        campo.setText(campo.getText() + i);
                    }
                }
            }
        }

        if(e.getSource() == zerar) {
            campo.setText("");
            operaracao_efetuada  = ' ';
            memoria     = 0;
        }

        if(e.getSource() == operacao[5]) {
            if(isEmpty(campo)) {

                memoria = 1 / Double.parseDouble(campo.getText());
                campo.setText("" + memoria);
                resultado = true;

            }
        }

        if(e.getSource() == operacao[1]) {
            if(isEmpty(campo)) {

                memoria = Math.sqrt(Double.parseDouble(campo.getText()));
                if(memoria >= 0) {
                    campo.setText("" + memoria);
                } else {
                    campo.setText("Valor inválido!");
                }
                resultado = true;

            }
        }        

        if(e.getSource() == operacao[0]) {
            if(isEmpty(campo)) {
                setOperacao('/');
            }
        }

        if(e.getSource() == operacao[2]) {
            if(isEmpty(campo)) {
                setOperacao('*');
            }
        }

        if(e.getSource() == operacao[4]) {
            if(isEmpty(campo)) {
                setOperacao('-');
            }
        }

        if(e.getSource() == operacao[8]) {
            if(isEmpty(campo)) {
                setOperacao('+');
            }
        }

        if(e.getSource() == operacao[7]) {
            if(isEmpty(campo)) {
                if(campo.getText().indexOf(".") == -1)
                    dot = true;
            }
        }        

        if(e.getSource() == operacao[6]) {
            if(isEmpty(campo)) {
                memoria = Double.parseDouble(campo.getText()) * (-1);
                campo.setText("" + memoria);
                operaracao_efetuada = ' ';
                resultado = true;
            }
        }

        if(e.getSource() == operacao[9]) {
            if(isEmpty(campo)) {

                if(operaracao_efetuada != ' ') {

                    switch (operaracao_efetuada) {

                        case '+':
                            memoria += Double.parseDouble(campo.getText());
                            campo.setText("" + memoria);
                            operaracao_efetuada = ' ';
                            resultado = true;
                            break;

                        case '-':
                            memoria -= Double.parseDouble(campo.getText()); 
                            campo.setText("" + memoria);
                            operaracao_efetuada = ' ';
                            resultado = true;
                            break;

                        case '*':
                            memoria *= Double.parseDouble(campo.getText()); 
                            campo.setText("" + memoria);
                            operaracao_efetuada = ' ';
                            resultado = true;
                            break;

                        case '/':
                            memoria /= Double.parseDouble(campo.getText());
                            campo.setText("" + memoria);
                            operaracao_efetuada = ' ';
                            resultado = true;
                            break;

                    }
                    
                }

            }
        }        

    }
    
    private void setOperacao(char e) {
        memoria = Double.parseDouble(campo.getText());
        campo.setText("");
        operaracao_efetuada = e;
    }

    private boolean isEmpty(JTextField e) {
        if(e.getText().length() == 0) {
            JOptionPane.showMessageDialog(null, "Campo em branco, digite um número!","Campo em branco", JOptionPane.ERROR_MESSAGE);
            return false;
        } else {
            return true;
        }
    }
    
    public void keyReleased(KeyEvent e) {

        // Evento chamado quando a tecla é liberada depois do evento KeyPressed ou KeyTyped
        int x = e.getKeyCode();

        //JOptionPane.showMessageDialog(null, ""+x);
        
        if(isValid(x)) {

            String tecla = e.getKeyText(e.getKeyCode());

            for(i=0;i<10;i++) {
                if(tecla.equals(""+i)  || tecla.equals("NumPad-"+i)) {
                    numeros[i].doClick();
                }
            }

            if(x == 44) {
                operacao[7].doClick();
            }
            if(x == 61) {
                operacao[9].doClick();
            }
            if(x == 111) {
                operacao[0].doClick();
            }
            if(x == 106) {
                operacao[2].doClick();
            }
            if(x == 109) {
                operacao[4].doClick();
            }
            if(x == 107) {
                operacao[8].doClick();
            }                  

        }

    }

    public void keyTyped(KeyEvent e) {
        // Evento chamado quando o usuário aperta alguma tecla que não seja de acão
        // por exemplo: Page Down, Num Lock, Home, Page Down, End
    }

    public void keyPressed( KeyEvent e) {
        // Evento chamado quando o usuário pressiona qualquer tecla
             if(e.getKeyCode() == e.VK_ESCAPE){   
            // passando this e nao null, mensagem aparece centro da janela   
            int selectedOption = JOptionPane.showConfirmDialog(this,"Deseja Sair Realmente?", "Atenção", JOptionPane.YES_NO_OPTION);   
             if(selectedOption == JOptionPane.YES_OPTION){   
                dispose();   
                System.exit(0);   
            }
            if (e.getKeyCode() == 10) setOperacao();       
        }
    }
    private boolean isValid(int x) {

        if((x >= 48) && ( x <= 57 ) || (x >=96) && (x<=105) || (x == 111) || (x == 107) || (x == 106) || (x == 109) || (x == 46) || (x == 61) || (x == 44) ) {
            return true;
        }

        return false;

    }
    public static void main( String args[]) {

        new Default().show(); 

    }

} 

Sugestões para evitar métodos depreciados:
Linha 274:

String tecla = KeyEvent.getKeyText(e.getKeyCode());

Linha 312:

 if(e.getKeyCode() == KeyEvent.VK_ESCAPE){   

Linha 333:

new Default().setVisible(true);

E a solução para o seu problema é:
Adicione o código do Enter (10) como válido no método isValid(int x) (linha 324):

if((x >= 48) && ( x <= 57 ) || (x >=96) && (x<=105) || (x == 111) || (x == 107) || (x == 106) || (x == 109) || (x == 46) || (x == 61) || (x == 44) || (x == 10) ) {

E mude a linha 285 para:

if(x == 61 || x == 10) {

E aí pronto!

Deu certo era isso mesmo vlw pela forca !! problema resolvido !!