Boa noite, tenho o seguinte metodo:
/**
* Objetivo: Remover caracteres não numéricos
* Data: 07/08/2006
* @param entrada String
* @return String
*/
public String removeCaracters(String entrada){
Pattern numericos = Pattern.compile("[0-9]",Pattern.CASE_INSENSITIVE);
Matcher encaixe = numericos.matcher(entrada);
StringBuffer saida = new StringBuffer();
while(encaixe.find())
saida.append(encaixe.group());
return saida.toString();
}
Ele esta funcionado, mas preciso que ele aceite que o campo possa ser editado com as setas direita e esquerda do teclado, so tah permitindo o backspace, consigo adpatar?
Estou chamando assim na minha classe view:
txtTelefone.addKeyListener(
new KeyListener(){
Validacoes validacoes = new Validacoes();
public void keyTyped(KeyEvent e) {
txtTelefone.setText(validacoes.maxLength(txtTelefone.getText(),15));
}
public void keyPressed(KeyEvent e) {
txtTelefone.setText(validacoes.maxLength(txtTelefone.getText(),15));
}
public void keyReleased(KeyEvent e) {
txtTelefone.setText(validacoes.maxLength(txtTelefone.getText(),15));
}
}
);
Sendo chamado dentro do maxlength:
public String maxLength(String entrada,int tamanho){
StringBuffer saida = new StringBuffer();
char[] caracteres = removeCaracters(entrada).toCharArray();
for(int i=0;i<caracteres.length && i<=tamanho;i++){
saida.append(caracteres[i]);
}
return saida.toString();
}