Erro com o DecimalFormat

Pessoal boa noite.

Estou desenvolvendo um sistema e me deparei com um pequeno problema. Tenho um campo salário no meu formulário de atualização, quando o usuário seleciona algum registro que aparece no jTable, o sistema automaticamente preenche os campos, então para formatar o salário para o nosso formato utilizei o DecimalFormat, só que quando vou atualizar os dados e preciso converter o valor que está no campo salário para double, nessa hora que acontece o seguinte erro.

Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: Cannot format given Object as a Number.

Tentei utilizar o método replace do String, mas não deu certo, consegui atualizar os dados mas depois percebi que o valor estava errado.

Agradeço desde já quem puder me ajudar.

Atenciosamente

Marcos.

public void converterValor() {
    String s;
    double d;
    DecimalFormatSymbols dfs = new DecimalFormatSymbols(new Locale("pt", "BR"));
    // Formato com sinal de menos -5.000,00
    DecimalFormat df1 = new DecimalFormat("#,##0.00");
    d = Double.parseDouble(campovalor.getText());
    s = df1.format(d);
    System.out.println(s); // imprime -5.000,00
    campovalor.setText(s); // imprime -5.000,00
}

E para converter novamente para double? Na minha aplicação eu aplico esse formato, mas quando vou atualizar no banco preciso converter de volta.