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.