Problema com expressão regular [resolvido]

Galera, eu estou tentendo validar um campo telefone, só que a minha expressão regular está dando erro.
esse é o código:

private boolean validoTelefone( String telefone ) {
        if(telefone.matches("^\(\d{2}\) \d{4}-\d{4}$") ) {
            return true;
        }
        else {
            JOptionPane.showMessageDialog(this, "Telefone inválido");
            return false;
        }
    }

o erro é :

ilegal escape character
ilegal escape character
ilegal escape character
ilegal escape character
ilegal escape character

aparece cinco vezes esse erro. Se alguem souber corrigir, eu agradeço.

Cara, tente a seguinte expressao regular:

"\(\d{2}\)\d{4}-\d{4}"

veja o teste:

String telefone =  "(22)1234-4323";
System.out.println(Pattern.matches("\(\d{2}\)\d{4}-\d{4}", telefone));

ate

Vini Fernandes, muito obrigado, deu certim.
Só me explica uma coisa, porque tem que colocar duas barras (\ ) e não só uma?

Porque faz parte da sintaxe do Java. O caracter barra “” deve ser representado por barra dupla. Tente fazer o seguinte:

System.out.println("imprimindo o caracter barra \");

voce tera um erro de compilacao, mas veja agora:

System.out.println("imprimindo o caracter barra \");

t+

ahhhhhffffff… que burro q eu sou, nem prestei atenção nisso… é verdade cara, para se ter uma barra no java tem que colocar duas