Alguem me explica esse código? =P

4 respostas
brunorota

Ae galera
Eu achei esse código aqui na internet pra não deixar o usuário digitar letras em um JTextField
Tipo eu to usando, funcionou e tals
Mais eu não entendi bulhufas do código =X
Se alguem poder me explicar ele ficaria grato

public JTextField getTxtCod(){
		
		if(txtCod == null){
			
			txtCod = new JTextField();
			txtCod.setBounds(80, 31, 70, 20);
			txtCod.addKeyListener(new KeyAdapter() {  
				public void keyTyped(final KeyEvent arg0) {  
				    if(!Character.isDigit(arg0.getKeyChar())){    
				         arg0.consume();  
				    }  
				}             
			});  
		}
		return txtCod;
	}

Atenciosamente

4 Respostas

thiago.correa
Se teu chefe te der um aumento eu vou querer uma parte!!!!
public JTextField getTxtCod(){
		
		if(txtCod == null){ // valida se o campo é nulo
			
			txtCod = new JTextField(); //cria o objeto
			txtCod.setBounds(80, 31, 70, 20); //seta o tamanho
			txtCod.addKeyListener(new KeyAdapter() {   //adiciona um "ouvidor para tratar eventos de teclas digitadas
				public void keyTyped(final KeyEvent arg0) {   //como KeyAdapter é uma interface faz-se necessário implementar os métodos
				    /*
				     * Usa o método isDigit da classe Character para validar se é um número,
				     * mas note que ele negou (com o uso do !) a expressão, logo tudo que não for um número
				     * vai satisfazer a condição e entrar no if
				     */ 
				    if(!Character.isDigit(arg0.getKeyChar())){ 
				         arg0.consume();  //consome o evento, fazendo como se nada tivesse sido precionado
				    }  
				}             
			});  
		}
		return txtCod;
	}
D

pode cre, por partes:

brunorota:
public JTextField getTxtCod(){
		
		if(txtCod == null){			
			txtCod = new JTextField(); // cria teu JTextField
			txtCod.setBounds(80, 31, 70, 20); //seta a posicao dele em tela e seu tamanho
			txtCod.addKeyListener(new KeyAdapter() {   //adiciona um evento ao seu JTextField... esse é um evento de teclado (KeyListener)
				public void keyTyped(final KeyEvent arg0) {   //esse metodo sera chamado sempre que uma tecla for pressionada no seu TextField porque voce adicionou um evento de teclado a ele
				    if(!Character.isDigit(arg0.getKeyChar())){    //esse if verifica se a tecla digitada NAO é um digito
				         arg0.consume();   // se for diferente de digito vai passar pelo if e entrar aqui, onde o evento é "consumido" ou seja, seria como se voce matasse o evento aqui pra ninguem mais saber que ele ocorreu
				    }  
				}             
			});  
		}
		return txtCod;
	}

é isso ae, recomento voce a pesquisar sobre eventos, KeyListener, KeyAdapter, como sao, como funcionam, seus metodos... isso vai te ajudar muito no futuro...

[]´s

editado:: nao tinha visto o amigo de cima responder jah, mas ainda recomendo os estudos ali

ricardo.narezi

vou te dar uma dica, e não uma bronca ok!
pegue cada instrução e procure no google, se vc procurar por jTextField api, ele te mostra todos esse comando que estão sendo usados…
Pq nem sempre temos quem nos fala o que realmente esta fazendo um código, temos que em alguns momentos procurar…
por favor, não leve isso como uma bronca, mas como uma dica, que um dia eu recebi e estou repassando agora.
[]s

brunorota

Valew pela dica ^^
E valew pelos comentarios tbm

Falows

Criado 1 de julho de 2009
Ultima resposta 1 de jul. de 2009
Respostas 4
Participantes 4