Metodo formatação

1 resposta
M

e ai galera…

Seguinte:
Estou com um problema e não to conseguindo resolve;
tenho 2 JTextFields, um pode digitar 4 numeros e o outro 2 numeros.
Fiz um metodo pra tratar esses detalhes:

public void formataTextField(KeyEvent e,String chave, JTextField textField){
        char key = e.getKeyChar();
                String text = "";
                int tamanho = 0;
                if (key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
                    text = textField.getText();
                    if (chave.equals("codigo")){
                        tamanho = 3;
                    }else {
                        tamanho = 1;
                    }
                    if (text.length() < tamanho){
                        textField.setText("");
                        textField.setText(text);
                    }else{
                        textField.setText(text.substring(0,tamanho));
                    }
                } else {                    
                    textField.setText(text.substring(0,text.length()));
                }
    }

esse metodo e chamado no evento keyListener do JTextfield, ele recebe o KeyEvent, o JTextfield que disparou o evento e uma chave pra identificar o JTextField.

Tem 2 probleminhas nele.

1 - ele aceita digitar uma letra(somente uma);
2 - quando digito o ultimo numero, por exemplo, no JTextfield de 4 numeros, digito 1234 e continuar digitando ele vai fazer a troca do ultimo caracter.

Alguem pode me dar uma mãozinha ai pra resolver esse problema?

Valeu…

1 Resposta

P

voce ja pensou em tirar de foco seu jTextField apos o ultimo caracter ser inserido? quando o tamanho de seu jTextField for = 4 voce usa um listener para jogar o Foco de seu textfield para outro textfield ou para um botao.

Essa é minha ideia, ou entao desabilitar o jTextField apos o ultimo caracter ser inserido.

Se tiver alguma duvida de como se faz algum dos dois pergunte que te passo um exemplo.

Criado 4 de setembro de 2006
Ultima resposta 4 de set. de 2006
Respostas 1
Participantes 2