Mudar de JTextField usando TAB

7 respostas
rafael.pierre

Ai galera… Como podem ver sou iniciante e essa minha dúvida é bem simples.

Quero que ao executar a minha aplicação o usuário possa alternar entre campos JTextField utilizando a tecla TAB.

Alguém pode ajudar?

7 Respostas

diego2005

Mais esse não é o comportamento default???

T+

rafael.pierre

Então, também achei que fosse, mas tenho uma aplicação e o TAB não faz nada quando pressionado.

Será que tem algo a ver com o layout?

lina

Oi,
Mudar o focu utilizando a tecla TAB é um “padrão” default do java.

Porem a ordem que se comporta o focu ao clicar no TAB não é.
A principio por default a ordem seria a sequencial adicionada ao seu painel ou ao seu container.

Caso você queira mudar esta sequencia, você pode criar um evento de teclado utilizando o TAB e dando requestFocus() no campo desejado.

Não sei se ficou complicado…

Tchauzin!

as vezes, quando você clicou no TAB o focu foi parar em um botão, e você não conseguiu identifica-lo…

lina

Oi,
qual o layout utilizado?

Tchauzin!

rafael.pierre

Ola,

Tentei usar o GridBagLayout e alguns outros, mas não me dei muito bem, então deixei no “Desenho Livre”.

De qualquer forma, tentei adicionar o seguinte evento ao 1º campo:

private void Field1KeyPressed(java.awt.event.KeyEvent evt) {

if (evt.getKeyCode()==evt.VK_TAB)

Field2.requestFocus();

}

Mesmo assim, não deu certo. Aonde estou errando?

analyser

Cara pelo oque eu sei era Default

Abraços

lina

Oi,
Existem duas maneiras de implementar isso..
uma é adicionando um KeyListener ao seu componente:

textfield.addKeyListener(io_kl_rede_selecionar);

//
// Implementa um KeyListener para o textfield.
//
KeyListener	io_kl_rede_selecionar		=	new	KeyListener()
{
	//
	// Metodo de Botao Pressionado
	//
	public
	void		keyPressed(KeyEvent	evt)
	{
		//
 		// Se for apertado o botao TAB
 		//
 		if	(
 				evt.getKeyCode()	==	KeyEvent.VK_TAB
 			)
 		{
 			//
 			// Componente que recebe o Focu
 			//
 		
 		}
 	}
 	//
 	//Interface obrigatoria
 	//
 	public
 	void		keyReleased(KeyEvent	evt)
 	{
 				
 	}
 	//
 	//Interface obrigatoria
 	//
 	public
 	void		keyTyped(KeyEvent	evt)
 	{
 				
 	}
};

e a outra já é direta no componente...

textfield	=	new	JTextField();
textfield.setBounds(65,17,170,25);
textfield.requestFocus();		
io_ct.add(textfield);

textfield.addKeyListener
(
	new	KeyAdapter()
	{
		public
		void			keyPressed(KeyEvent evt)
		{
			//
			// Cria um int com o codigo do botao
			//
			int	ln_ke_pressionado	=	evt.getKeyCode();
						
			//
			// Se for apertado o botao control
			//
			if	(							
					ln_ke_pressionado	==	KeyEvent.VK_TAB
				)
			{
				// Focu.	
			}
		}
	}
);

De uma olhada.. e veja se isso ajuda na implementação do seu..

Tchauzin!

Criado 12 de julho de 2007
Ultima resposta 12 de jul. de 2007
Respostas 7
Participantes 4