Agora eu me liguei numa coisa, eu Não posso desenvolver essa evento no focusGained pois se a minha Aplicação Inicia com o Foco no tfCodigo ele inicia Nulo então da exceção!
Eu teria que desenvolver algo coco:
QUANDO o tfCodigo tiver 13 caracteres chamar o Evento !
Alguem poderia me Ajudar nisso!
Estou iniciando em java então tenho alguns problemas ainda!
Obrigado!
S
seliaj
ola
vc pode usar o metodo keyReleased da interface keyListener.
o focusGained é um metodo da interface FocusListener, ele é acionado assim que o objeto ganha foco.
o keyReleased é um metodo da interface KeyListener, ele é acionado assim que uma tecla e solta.
o codigo que voce criou para focusGained passe ele para keyReleased.
privatevoidjTextField1KeyReleased(java.awt.event.KeyEventevt){
if(jTextField1.getText().length()==13){
System.out.println("Voce digitou a Decima Terceira Letra");}
}
At+
viny_scholl
seliaj:
ola
vc pode usar o metodo keyReleased da interface keyListener.private void teu_jTextField_KeyReleased(java.awt.event.KeyEvent evt) {
//teu code aki
}At+
Porem não esta funcionan, pois quero chamar o Evento tfCodigoFocusLost que é um FocusEvent e por isso da erro!
Ele tenta transformar meu tfCodigoFocusLost em KeyListener !
Tah Osso Einh!
viny_scholl
seliaj:
ola
o focusGained é um metodo da interface FocusListener, ele é acionado assim que o objeto ganha foco.
o keyReleased é um metodo da interface KeyListener, ele é acionado assim que uma tecla e solta.
o codigo que voce criou para focusGained passe ele para keyReleased.
tfCodigo.addKeyListener(newKeyListener(){publicvoidkeyReleased(KeyEventevt){if(tfCodigo.getText().length()==13){System.out.println("Voce digitou a Decima Terceira Letra");}}});
At+
viny_scholl
seliaj:
viny,
voce quer o queria a realizacão na 13° digito.
por que vc que usa focuslost.
so colocar seu codigo aqui.
tfCodigo.addKeyListener(newKeyListener(){publicvoidkeyReleased(KeyEventevt){if(tfCodigo.getText().length()==13){System.out.println("Voce digitou a Decima Terceira Letra");}}});
At+
É assim amigo, estou desenvolvendo uma frente de Caixa, onde os produtos são cadastrados com 13 caracteres,
eu chamo o produto pelo codigo e ao perder o foco realizo a venda!
Mas eu queria que o sistema Perdesse o foco Automaticamente assim que o tfcodigo estivesse com 13 caracteres do codigo do produto!
Segue o tfCodigoFocusLost:
privatevoidtfCodigoFocusLost(FocusEventevt){System.out.println("Entrou em tfCodigoFocusLost");try{if(!tfCodigo.getText().equals("")){// verifica se esta vazio produtobean=controle.searchProductsByCod(tfCodigo.getText());// chama o produto pelo CódigojTextField2.setText(produtobean.getDescricao());// chama descrição do produtojTextField4.setText(String.valueOf(produtobean.getValorVenda()));// chama valor da venda do produtojTextField3.requestFocus();// passa o foco para preencher a quantidade}}catch(Exceptione){// se ocorrer exceção JOptionPane.showMessageDialog(null,"Produto Não Cadastrado!!");System.out.println("Entrou em Catch");tfCodigo.setText("");// limpa o campo tfCodigotfCodigo.requestFocus();// passa o foco para o tfCodigo }finally{}}
É por isso que não posso mecher no (Focus Event evt) de tfCodigoFocoLost !!
S
seliaj
viny,
ja que voce não quer mover seu codigo do lostfocus, então faça que ao chegar no 13 caracter ele passe o foco para outro componente.
assim ele perde o foco e executa seu codigo
at+
viny_scholl
seliaj:
viny,
ja que voce não quer mover seu codigo do lostfocus, então faça que ao chegar no 13 caracter ele passe o foco para outro componente.
assim ele perde o foco e executa seu codigo
at+
E como eu faria isso?
Poderia me ajudar com o codigo?
viny_scholl
[size=24]Valeu seliaj ! [/size]
[size=18]Tu é o Cara!
Funcionou agora!
Valeu mesmo Cara!
Tava o DIA todo nisso ai! haha
Abração![/size]
ViniGodoy
Cuidado, eventos (lostfocus, keypressed, keyreleased, etc) são geralmente a maneira errada de se trabalhar com entrada de texto no JTextField. É difícil cancelar eventos dessa forma e é difícil também limitar os eventos, sem falar que diferentes SOs podem ter tratamentos de eventos ligeiramente diferentes.
Cuidado, eventos (lostfocus, keypressed, keyreleased, etc) são geralmente a maneira errada de se trabalhar com entrada de texto no JTextField. É difícil cancelar eventos dessa forma e é difícil também limitar os eventos, sem falar que diferentes SOs podem ter tratamentos de eventos ligeiramente diferentes.
Estou recem começando em Java são dicas como essa que me levam para o caminho Certo!
É Sério que com diferentes SO elas podem sofrer variações?
Obrigado!
ViniGodoy
Sim, por isso é importante ler bem a documentação. Aproveita que vc tá começando e leia as 15 dicas úteis no uso de Swing: