Mudança de foco - RESOLVIDO

9 respostas
hjmarcon

Eu tenho vários JTextFields na minha tela.
Já sei como fazer o foco ir para um determinado componente.
Porém, preciso saber como resgatar o componente que está recebendo o foco.
P. ex. : eu tenho o JTextField1, o JButton1 e o JButton2.
Acontece que eu preciso saber pra onde vai o foco. Se o usuario clica no JButton1 faz uma coisa, se clica no JButton2 faz outra, mas eu preciso saber pra onde foi.
Alguém poderia me ajudar ?

9 Respostas

marciofermino

Por favor estou com as mesmas duvidas que vc …
so que eu ainda nao consegui mudar o foco pode me passar :?

hjmarcon

quando vc quer fazer o foco ir para um determinado objeto :
objeto.requestFocus();

marciofermino

Ta… ok
seguinte eu tenho 3 jTextField

eu quero que ao pressionar a teclar ENTER ele que esta no jTextField1
va para o jTextField 3

davidbuzatto

Para todos, é só registrar um FocusListener para os componentes e acompanhar o que está acontecendo.

componente.addFocusListener( new FocusListener() { public void focusGained( FocusEvent e ) { // se ganhou foco } public void focusLost( FocusEvent e ) { // se perdeu foco } } );

Falow!

marciofermino

ok… e como faco para mudar o foco de 1 componente para outro pressionando a tecla enter

hjmarcon
marciofermino:
ok.. e como faco para mudar o foco de 1 componente para outro pressionando a tecla enter

Bom... eu to fazendo desse jeito....
nao deu pra trazer o codigo generico pra ca...
eh q eu uso uma outra classe para pesquisa..

jtfMatricula.addKeyListener(new KeyAdapter() {
	    public void keyPressed(java.awt.event.KeyEvent evt) {
		Funcoes.Tecla(evt, "SELECT CODIGO, NOME FROM USUARIO", jtfMatricula);
	    }
	});
    
    public static void Tecla(KeyEvent evt, String sqlPesq, JTextField retorno) {
	PadraoPesquisa pesquisa;
	int intKey = evt.getKeyCode();
	if (intKey == KeyEvent.VK_F2){
	    if (!sqlPesq.equals("")){
		pesquisa = new PadraoPesquisa(null, true, sqlPesq);
		retorno.setText(pesquisa.retornaCodigo());
	    }
	}else if (intKey == KeyEvent.VK_ENTER)
	    ((JTextField)evt.getSource()).transferFocus();
    }
davidbuzatto

Dá uma olhada


http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html

hjmarcon

Muito obrigado pela ajuda pessoal!
Eu usei

if (evt.getOppositeComponent() != objeto){ }

foi mais simples do que eu pensei
ae davidbuzatto, o link ajudou bastante, obrigado.

flw povo!!

L

Ae cara,
tu quer saber se o elemento está focado?
tenta o hasFocus :wink:

hasFocus()
Returns true if this Component has the keyboard focus.

Criado 29 de setembro de 2006
Ultima resposta 29 de set. de 2006
Respostas 9
Participantes 4