domingo, 13 de outubro de 2013

Tutorial limitando um JTextField

Fala galera, estou um pouco sumido devido ao trabalho e meu TCC, mas cá estou para ensinar como limitar
um JTextField, com certeza essa é uma das propriedades que mais faz falta nessa Classe, e além de poder gerar problemas com banco de dados, deixar os campos com tamanho "infinito" pode tirar a estética do seu projeto, existem outras maneiras mais sofisticadas é obvio, um exemplo é o : PlainDocument, mas o mesmo pode ser complicado para quem está começando agora a desenvolver com em Java.
No caso como estou usando um combobox o index começa em 0 e primeiro valor é 1.
se voce colocar 1 ele deixara apenas duas letras e por assim vai :D
vamos ao código :


private void textoKeyTyped(java.awt.event.KeyEvent evt) {                            
  String t = texto.getText();
   if(t.length() >=Integer.parseInt(combo.getSelectedItem().toString())){
       texto.setText(""+t.substring(0,Integer.parseInt(combo.getSelectedItem().toString())));
       JOptionPane.showMessageDialog(null,"Maximo de "+Integer.parseInt(combo.getSelectedItem().toString())+" digitos!");
       combo.setEnabled(true);
   
   }
    }    

temos um método privado e sem retorno chamado textoKeyTyped e seus argumentos são (java.awt.event.ActionEvent evt);

ou seja estamos tratando de um evento já que estamos extendendo(Herdando) de awt.event

"Ta Jhonatan mas o que esse evento faz?"

Vamos lá : esse evento trata de todas as teclas digitadas no foco do seu text field, vale lembrar
que texto é o nome do meu TextField.

em
"String t = texto.getText();" estamos construindo uma String com os dados digitados no TextField
ATENÇÃO" pode gerar uma excessão : "NullPointerException" caso seja criada fora do evento

agora uma condição if (t.lenght() => estamos pegando o tamanho da String em bits e o método nos retorna um inteiro(Integer.ParseInt(combo.getSelectedItem().toString() estamos pegando o valor do combobox e no método getSelectedItem ele nos retorna um objeto, fazendo um typecast(Conversão) passo ele para String pois o método ParseInt recebe como argumento uma String.
"Ta Jhonatan e o que isso faz?"
-Bom isso ira contar os caracteres de acordo com os escolhidos no combobox e se ele for maior ou igual a ele ele fara : texto.setText(""+t.subsString(0 que é a primeira posição e o valor do nosso combo.
o JOptionPane apenas avisa que os campos foram estourados
o setEnabled(false) desativa o combo para evitar Exceptions.

o código :
https://sites.google.com/site/fordivos/kiki/Campos.rar?attredirects=0&d=1


qualquer duvida é só postar nos comentarios!

curtam nossa fã page!
https://www.facebook.com/javeando

Obrigado, até mais!






















Nenhum comentário:

Postar um comentário