Frame/Tratamento de Evento

2 respostas
adrianostanley
frame.setName( ++idJanela );

frame.addFocusListener(
	new FocusListener() {
		
		public void focusGained( FocusEvent f )
		{
			***DÚVIDA AQUI***		
		}
					
		public void focusLost( FocusEvent f )
        	{
						
		}
	}
);
Como faço pra acessar o nome do frame definido em setName() dentro do FocusListener????

Fora seria frame.getName(); mas se eu coloco isso dentro de focusGained, eu recebo isso:

Cannot refer to a non-final variable frame inside an inner class defined in a different method.

Vlw pessoal...

2 Respostas

Flasoft

Faça assim:

import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;

public class Teste {
	public static void main(String[] args) {
		JFrame frame = new JFrame("Teste");
		//frame.setName( ++idJanela );

		frame.addFocusListener(
				new FocusListener() {

					public void focusGained(FocusEvent f )
					{
						System.out.println(((JFrame)f.getComponent()).getTitle()); //aqui pode ser o getName em vez de getTitle...
						//é q eu só fui ver depois
					}

					public void focusLost( FocusEvent f )
					{

					}
				}
		);
		frame.setBounds(200, 200, 200, 200);
		frame.setVisible(true);
	}
}
adrianostanley

Vlw cara, funcionou perfeitamente!

Criado 12 de julho de 2006
Ultima resposta 12 de jul. de 2006
Respostas 2
Participantes 2