JTextField + Texto em Caixa Alta

14 respostas
F

Galera, estou com uma janela com u mcmapo ed texto onde tudo o que for digitado tem que aparecer em caixa alta, vi que na API tem um exemplo de uma classe que implementa o toUpperCase, mas tive alguns problemas com ela e resolvi criar minha própria solução…Eu adicionei um evento de tecla ao JTextField, que semrpe que precionar uma tecla, ele vai detectar a teclar, vai deixar - lá em caixa alta, e vai reimprimi-la no campo de texto, porém estou enfrentando 2 problemas… 1°)semrpe qd mando mostrar no cmap ode texto ele mostra uma mesma tecla 2 vezes, uma em caixa alta e a outra em caixa baixa, e a que está em caixa baixa só desaparece qd pressiono outro tecla, porém a nova tecla tb aparece 2 vezes, 1 em cx alta, e a outra em cx baixa…
2°) o segundo problema é que caso eu tenha digitado um caracter errado e eu queira apagar o memsousando o Backspace, ele naum apaga o caracter, mas sim mostra no cmap ode texto o caracter correspodnente ao Backspace, aih vai meu codigo, caso alguem tenha alguma dica ficarei muito grato…
abraço pessoal:

jTextField1.addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent e){

LoguinCaixaAlta=LoguinCaixaAlta+e.getKeyChar();
          LoguinCaixaAlta=LoguinCaixaAlta.toUpperCase();
         jTextField1.setText(LoguinCaixaAlta);
        }
         
     });
    
       jTextField1.setText(LoguinCaixaAlta);  
}

14 Respostas

netShot

Leia este artigo:

Controlando um JTextField

Que vai te ajudar, qualquer coisa posta ae :wink:

Se não entender como funciona, vai ficar +/- assim:

(só maiúsculas)

JTextField tf = new JTextField();
tf.setDocument( new PlainDocument()
{
	@Override
	public void insertString( int offs, String str, AttributeSet a )
					throws BadLocationException
	{
		super.insertString( offs, str.toUpperCase(), a );
	}
} );
rodrigo1

http://www.guj.com.br/posts/list/3972.java

ricoldi

mano onde vc aprendeu a escrever?

F

Ah…Ricoldi foi mal…sei que tava cheio de erro…mas acho que o GUJ é pra se discutir sobre JAVA e não sobre as Regras da Gramática Normativa Brasileira…

F

Cara…tentei implementa ro código que vc passou, porém ta dando o mesmo erro que tava dando qud tentei implementar o exemplo que existe na API…da um erro na linha:

super.insetString(offs,str.toUpperCase(),a);”

… =S

netShot

flaryon:
Cara…tentei implementa ro código que vc passou, porém ta dando o mesmo erro que tava dando qud tentei implementar o exemplo que existe na API…da um erro na linha:

super.insetString(offs,str.toUpperCase(),a);”

… =S

Não se esqueça dos imports corretos :

import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument;

F

nada…o erro continua, o que ta me deixando curioso é o fato de eu ter tentado implementar soluções diferentes e o erro estar no mesmo lugar…tentei a solução proposta neste topico, porem o erro está na mesma linha

tópico:
http://www.guj.com.br/posts/list/3972.java

linha que apresenta erro:
super.insetString(offs,str.toUpperCase(),a);

netShot

flaryon:
nada…o erro continua, o que ta me deixando curioso é o fato de eu ter tentado implementar soluções diferentes e o erro estar no mesmo lugar…tentei a solução proposta neste topico, porem o erro está na mesma linha

tópico:
http://www.guj.com.br/posts/list/3972.java

linha que apresenta erro:
super.insetString(offs,str.toUpperCase(),a);

Qual o erro ele apresenta ??
No codigo que você escreveu deveria ser [size=16]insertString[/size] e não [size=16]insetString[/size] verifica se não é isso

F

Cannot find symbol
symbol:method insertString (int, java.lang.String, javax.printAttribute.AttributeSet)
location: class javax.swing.text.PlainDocument

vinnyparker

rapaz eu tive um problema parecido, mas eu usei o StrHelper

simples oh:

//o campo que vc deseja
campo = StrHelper.removeSigns(campo.toUpperCase());

eu fiz isso no meu codigo e funcionou normalmente.
da maneira que esta aí, ele remove sinais e coloca todos em caixa alta… espero q tenha ajudado

netShot

flaryon:
Cannot find symbol
symbol:method insertString (int, java.lang.String, javax.printAttribute.AttributeSet)
location: class javax.swing.text.PlainDocument

você está usando imports errados (javax.printAttribute.AttributeSet) , usa os que eu passei acima e escreve o nome do método correto tambem.

Funciona perfeitamente desse modo, basta utilizar os imports correto. Posta como está sua classe completa.

Faça assim :

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class UpperCaseLetter extends PlainDocument {
    
    @Override
    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
        super.insertString( offs, str.toUpperCase() , a );
    }

}

Exemplo de uso :

seuTextField.setDocument(new UpperCaseLetter());
F

VinyParker…cara, vc pegou alguma biblioteca para fazer isso pq estyou usando o net beans e ele manda eu cirar uma classe StrHel…

F

NetShot cara…brigadão pela ajuda e paciência viu?!..rodou legal…abraço

vinnyparker

rapaz eu criei uma extensao do String Utils…

umas classes de ajuda q dei umas pesquisada na internet e eachei…

Criado 8 de julho de 2008
Ultima resposta 8 de jul. de 2008
Respostas 14
Participantes 5