Pesquisar neste blog

quinta-feira, 27 de setembro 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