Como estanciar java netbeans (Resolvido ! )

4 respostas
R

Pessoal, sou novato em java/netbeans e estou com dificuldade em fazer o seguinte, eu consegui uma formular para que sempre que eu digitar um texto no meu jtextfield independente se o caps look estiver ativo as letras seriam somente em caixa alta, porém o código é bem extenso e e eu tenho varios jtestfield para copiar a formula uma por uma. Minha dificuldade é a seguinte, eu queria deixar em uma classe separada essa formula (somente uma) e na classe que tem o jform setar os campos que vão pegar esse código.

segue o código:

jTextField.addKeyListener(new KeyListener() {

        @Override
        public void keyTyped(final KeyEvent e) {
            SwingUtilities.invokeLater(new Runnable() {

                @Override
                public void run() {
                    JTextArea campo = (JTextArea) e.getSource();
                    int posicaoCursor = campo.getCaretPosition();
                    campo.setText(campo.getText().toUpperCase());
                    if (posicaoCursor != campo.getCaretPosition()) {
                        campo.setCaretPosition(posicaoCursor);
                    }
                }
            });
        }

        @Override
        public void keyReleased(KeyEvent e) {
        }

        @Override
        public void keyPressed(KeyEvent e) {
        }
    });

ps. Se tiver outra foma mais simples para que fique tudo em caixa alta ficaria melhor ainda.

4 Respostas

R

Uma saída é instalar um DocumentFilter nas caixas de texto para as quais quiser a conversão para maiúsculas:
http://www.java2s.com/Code/Java/Swing-JFC/FormatJTextFieldstexttouppercase.htm

jeffepalmares

amigo da uma olhada na formatação de código do forúm pra melhor visualização do seu código fonte.

J

rick18pr,

Você poderia fazer da seguinte forma, criar um método para transformar as letras em caixa alta e depois chamá-lo em um evento “KeyTyped” do TextField.

/**Método para transformar o texto em caixa alta
*@param texto Texto para ser tranformado
*@param evento Evento do teclado.
*/
public void toUpperCase(String texto, java.awt.event.KeyEvent evento){
        evento.setKeyChar(texto.toUpperCase().charAt(0));
}
/**
*Você cria uma evento do tipo KeyTyped e chama o método acima.
*/
private void jTextFieldKeyTyped(java.awt.event.KeyEvent evt) {
     toUpperCase(evt.getKeyChar() + "",  evt);
}

Essa foi uma solução que um amigo me indicou, então eu testei e funcionou perfeitamente.
Espero ter ajudado.

R

Consegui, fiz como o Jonathan falou e deu certinho.

Obrigado a todos que colaboraram.

Criado 1 de dezembro de 2011
Ultima resposta 1 de dez. de 2011
Respostas 4
Participantes 4