WindowsAdapter x WindowsListener

1 resposta
vinians

Amigos, eu gosto de saber tudo que acontece por “debaixo dos panos” em qualquer coisa qua aprendo. Estou indo muito bem com o Java mas preciso saber como a classe WindowsAdapter faz com que não precisemos colocar todos os métodos para interceptar os eventos como faziamos antes. Por exemplo, se eu quiser interceptar o evento “WindowClosing” eu faria antes assim:

class Test extends JFrame implements WindowListener {
       public Test()
       {
             addWindoListener(this);
       }

	public void windowActivated(WindowEvent arg0) {
	}
	public void windowClosed(WindowEvent arg0) {
	}
	public void windowClosing(WindowEvent arg0) {
            // faça algo aqui
	}
	public void windowDeactivated(WindowEvent arg0) {
	}
	public void windowDeiconified(WindowEvent arg0) {
	}
	public void windowIconified(WindowEvent arg0) {
	}
	public void windowOpened(WindowEvent arg0) {
	}
}

Como podemos ver por ser uma interface somos obrigados a implementar todos os métodos mesmo que precisemos apenas de 1. Já com o WindowAdapter precisamos apenas disso:

class Teste extends JFrame 
{
      public Teste()
     {
		addWindowListener(
				new WindowAdapter() 
				{
					public void windowClosing(WindowEvent w) 
					{
						//faz algo util
					}
				});
     }
}

Bem mais enxuta né?
Eu sei como funciona as classes inline, não é essa a questao, mas qual seria a explicação real por traz dessa mágica de WindowAdapter ? Se alguem souber fico grato.

1 Resposta

R

WindowAdapter é uma implementação DEFAULT de WindowListener

Se você for usar o WindowAdapter (Classe Abstrata que implementa WindowListener) sua classe deve extendê-lo e você deve implementar somente os métodos que você precisa.
Nota: Se for criar de forma anonima… você precisa implementar somente os métodos que precisa.

Se for o WindowListener (Inteface) você deverá implementar ou deixar os não precisa vazios todos o métodos que estão assinados pela inteface.

Criado 13 de abril de 2012
Ultima resposta 13 de abr. de 2012
Respostas 1
Participantes 2