Duvida com getKeyCode()

9 respostas
J

Bom dia! Alguém sabe me dizer qual a constante KeyCode representa o caracter “.” ponto? Consegui descobrir que o caracter “.” ponto
em ascii é igual a 110 porem quando faço:

private void keyListener() { this.addKeyListener(new java.awt.event.KeyAdapter() { @Override public void keyTyped(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == 110) { //cancela a ação evt.consume(); } super.keyTyped(evt); } }); }
Já tentei tbm com o KeyPressed porem sem sucesso, Estou fazendo um componente e não posso deixar o caracter ponto ser digitado
Obrigado…

9 Respostas

E

Use KeyEvent.VK_PERIOD.

Referência:

http://java.sun.com/javase/6/docs/api/java/awt/event/KeyEvent.html

V

O melhor local para tratar isso, se seu componente é de texto, não é no keyPressed. Seu usuário ainda poderá usar ações como “copiar” e “colar” sobre seu componente, usando o mouse. No lugar, aprenda a mexer com o Document do seu componente de texto.

Veja esse tutorial do GUJ: Controlando um JTextField

A

vc está usando a IDE NetBeans? se for tenho um jeito pra não deixar o caracter ponto ser digitado através do evento do objeto JTextField.

V

ayrtonmonier:
vc está usando a IDE NetBeans? se for tenho um jeito pra não deixar o caracter ponto ser digitado através do evento do objeto JTextField.

Bom, não custa postar a solução. :slight_smile:
Vai que alguém usando o Netbeans visita o tópico no futuro através da busca.

A

coloque o seguinte código no evento KeyTyped do JTextArea:

if(evt.getKeyChar() == ‘.’){

evt.consume();

JOptionPane.showMessageDialog(null, não pode digitar ponto!);

}

A

coloque o seguinte código no evento KeyTyped do JTextArea:

if(evt.getKeyChar() == ‘.’){

evt.consume();

JOptionPane.showMessageDialog(null, não pode digitar ponto!);

}

V

ayrtonmonier:
coloque o seguinte código no evento KeyTyped do JTextArea:

if(evt.getKeyChar() == '.'){ evt.consume(); JOptionPane.showMessageDialog(null, não pode digitar ponto!); }

Muito interessante, mas é o que ele já havia postado.

E seu usuário sempre pode usar “copiar” num ponto escrito no bloco de notas, e a opção “colar”, bem em cima do JTextField. Pode, inclusive, fazer isso usando o mouse, o que não gera o evento KeyPressed.

É melhor ler o artigo que indiquei ali em cima e aprender um jeito certo, que não admite esse xunxo.

J

Galera muito obrigado pelas dicas li o artigo do vini e vou estudar um pouco a Document e assim que conseguir a solução posto aqui. Muito obrigado e qualquer coisa peço socorro novamente…

J

Só mais uma coisa eu uso o netbeans e estou tentando criar componentes que facilitem a minha vida. Alterado as propriedades na Document do meu componente será possivel visualizar a propriedade criada na paleta de propriedades do netbeans? Por que além de criar o componente a minha intenção é deixá-lo configurável.

Criado 13 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 9
Participantes 4