Pesquisar neste blog

sexta-feira, 1 de junho de 2012

Valor JTextField em UpperCase



Após algumas pesquisas na net em busca de uma solução para permitir apenas textos em letras maiusculas no JTextField do Java, a solução que mais me agradou foi essa.
Clique com o botão direto no mouse sobre o JTextFiled, vá na opção eventos\key\KeyReleased. Ele irá gerar o código inicial para o evento. Altere o mesmo para que fique da seguinte forma:

private void JTextField1KeyReleased(java.awt.event.KeyEvent evt) {

        if (evt.getKeyCode()!=32 & evt.getKeyCode()!=8 & evt.getKeyCode()!=37 & evt.getKeyCode()!=39)

        //JOptionPane.showMessageDialog(null, evt.getKeyCode(),"Código da tecla", 0);

        JTextField1.setText(JTextField1.getText().toUpperCase()); 

    }


Aprimorando o código para que não seja necessário mudar para cada componente:


 private void tf_NomeKeyReleased(java.awt.event.KeyEvent evt) {                                   

        JTextField tf = (JTextField) evt.getComponent();

        if (evt.getKeyCode()!=32 & evt.getKeyCode()!=8 & evt.getKeyCode()!=37 & evt.getKeyCode()!=39)

            tf.setText(tf.getText().toUpperCase());

    }

Agora, a cada tecla pressionada, o caracter será convertido para maiuscula e o cursor irá para o final do texto. Por isso é necessário tratar a entra. Caso a tecla seja espaço, back space, seta para frente e seta para tráz, nada é feito. Caso queira que outra tecla seja ignorada e não sabe o número, basta descomentar a terceira linha do código que o número correspondente será exibido. 


Claudir Pereira dos Santos 

 Matelândita, 20 de outubro de 2009.

Nenhum comentário:

Postar um comentário