Manipular o BACKSPACE no JTextField

Pessoal é o seguinte,

Estou implementando uma classe que adiciona uma máscara ao campo JTextField, que nesse caso é uma máscara específica para DATA, o que eu fiz foi que quando for pressionado a tecla BACKSPACE ao invés de apagar o número ele substitua com 0(zero). Exemplo: A data 10/08/2013 suponhamos que o cursor está no final do campo ao lado direito do número 3, quando o usuário pressionar a tecla BACKSPACE o número 3 é substituído pelo número 0 [10/08/2013, 10/08/2010, 10/08/2000, 10/08/2000, 10/08/0000, etc…] quando chegar ao fim, a data ficaria 00/00/0000.

Bom, mas isso eu já consegui realizar. Realizei a manipulação através de KeyListener com o método keyPressed.

Mas agora que vem o meu problema. Quero que quando todo o conteúdo do JTextField for selecionado e pressionado a tecla BACKSPACE o conteúdo seja apagado, deixando o campo vazio, só que a maneira que implementei pra manipular o BACKSPACE não deixa apagar o conteúdo.

Aqui está a maneira que fiz para manipular

[code]public void keyPressed(KeyEvent e) {// Ao pressionar BackSpace é substituído por 0 (zero)

    if(e.getKeyCode() == KeyEvent.VK_BACK_SPACE){
        try {
            if(jTextField.getCaretPosition()==3 || jTextField.getCaretPosition()==6){ // índice 3 e 6 são as barras, quando chegar na barra o salta para o número seguinte 
                super.remove(jTextField.getCaretPosition()-2, 1); // Remove o número
                super.insertString(jTextField.getCaretPosition()-1, "0", null); // Inseri 0(zero)
                jTextField.setCaretPosition(jTextField.getCaretPosition()-2); // Movimenta o cursor para trás
            }else{
                if(jTextField.getCaretPosition()!=0){ 
                    super.remove(jTextField.getCaretPosition()-1, 1);  // Remove o número
                    super.insertString(jTextField.getCaretPosition(), "0", null); // Inseri 0(zero)
                    jTextField.setCaretPosition(jTextField.getCaretPosition()-1); // Movimenta o cursor para trás
                }
            }
        } catch (BadLocationException ex) {
            Logger.getLogger(MaskFieldHB.class.getName()).log(Level.SEVERE, null, ex);
        }
        e.consume();
    }

}[/code]
Eu pensei em descobrir se todo o conteúdo do JTextField está selecionado para limpar todo o campo, mas não encontrei nada que pudesse me ajudar.

Alguém tem uma solução?

Só um detalhe: A máscara só aparece no campo quando ele estiver vazio e for pressionado o primeiro número (que no caso será o dia). Se por exemplo for digitado o número 2 e o campo estiver vazio, ficará assim 20/00/0000 e conforme for sendo digitados os próximos números os zeros são substituídos.

ThiagoHonorato qual classe vc está herdando?

Porque vejo que tem alguns supers, porém não sei de onde provém estes métodos.

Fala ai de onde vem estes métodos.

Talvez isso o ajude a encontrar o texto selecionado
http://forums.codeguru.com/showthread.php?308517-How-do-you-highlight-the-text-in-a-JTextfield

Para verificar se foi tudo selecionado basta utilizar:

[code]if(e.getKeyCode() == KeyEvent.VK_BACK_SPACE){

				if (texto.getText().equals(texto.getSelectedText())) {
					//Colocar ação de remoção de máscara
											
				}

}[/code]