Estou tentando fazer um JTextArea em q apenas pode ser digitado um digito por vez…o problema é que quando eu passo a String do evento de teclado para exibir no JTextArea, este mostra o mesmo valor duas vezes , por exemplo:
dd
22
AA
outro tipo de implementação, com o mesmo resultado:
eu tentei adicionar para uma string e depois passar para o JTextArea…mas tb naum deu certo…
se alguem puder ajudar eu agradeço…
o estranho eh q se eu passo para uma String e mando mostrar no prompt aparece de forma correta…mas passando esta mesma String pro JTextArea o erro continua…
oq pode ser???
visola
Achei o seu problema.
Esquecemos de um detalhe.
Quando você pressiona uma tecla no JTextArea, ele já tem o listener dele que vai adicionar o caracter referente a tecla que você apertou.
O seu listener está duplicando o trabalho.
Para evitar isso, use o método consume do evento para que nenhum outro listener seja notificado do mesmo evento.
visola, tentei o e.consume(), porem nao deu certo, entretanto, vc me atentou a um fato importanto q tinha passado despercebido: q o proprio JTextArea jah tem o seu proprio KeyListener…
então q eu precisava atualizar mas sem passar nenhum texto…eu fiz simplesmente assim:
e deu certo!!!
mas isso sobre parar o evento com o e.consume(), me interessou, vou ver se consigo…
Obrigado visola
flw
ViniGodoy
Não use eventos para controlar um JTextArea ou um JTextField.
Se quer acabar com a sua alegria, use o copy&paste do mouse e vc vai ver que seu código quebra. Aliás, com o CTRL+C e CTRL+V comum ele também deve quebrar.
No lugar, use a classe Document. Esse artigo do Java deve te ajudar Controlando um JTextField. Ele vale para o JTextArea também.
C
constantinoXII
vlw viniGodoy…
pow bem bacana o controle da quantidade maxima de caracters…