Dúvida sobre actionlistener [RESOLVIDO]

Pessoal,
estou com uma dúvida com relação ao uso do ActionListener.
Meu professor, num dado momento, quando criou um simples Frame, adicionou um botão que tinha uma determinada função. E para isso, ele escreveu o seguinte código, sendo que o botão estava no próprio Frame:

[code]
btn = new JButton(“Click Me!”);

	btn.addActionListener(new ActionListener(){

		
		public void actionPerformed(ActionEvent arg0) {
			textArea.append("Hello\n");
			
		}
		
	});[/code]

E quando o exemplo foi ficando mais elaborado, ele adicionou um Toolbar, e colocou 2 botões dentro do Toolbar, porém, ele utilizou o ActionListener de maneira diferente, que eu não entendo o porquê. Poderia alguém me explicar por favor?

Obrigado.

Segue o 2º Código:

[code]
public Toolbar(){
helloButton = new JButton(“Hello”);
goodbyeButton = new JButton(“GoodBye”);
setLayout (new FlowLayout(FlowLayout.LEFT));

	add(helloButton);
	add(goodbyeButton);
	
	helloButton.addActionListener(this);
	goodbyeButton.addActionListener(this);
	
}
public void setTextPanel(TextPanel textPanel){
	this.textPanel = textPanel;
}
@Override
public void actionPerformed(ActionEvent e) {
	
	JButton clicked= (JButton)e.getSource();
	
	if (clicked == helloButton){
		textPanel.appendText("Hello\n");
	}else if(clicked == goodbyeButton){
		textPanel.appendText("GoodBye\n");
	}
}

}[/code]

O que acontece em qualquer um dos exemplos é que o addActionListener(ActionListener action) exige uma implementação concreta de ActionListener para saber o que fazer quando um evento for disparado.

No primeiro exemplo uma implementação do método actionPerformed(ActionEvent event) da própria interface ActionListener é passada como parâmetro para o método addActionListener(ActionListener listener) do botão.

Já no segundo exemplo, o método actionPerformed(ActionEvent event) é implementado na própria classe, pois a mesma implementa ActionListener, e dessa forma, a própria classe funciona como listener para os botões e assim, como no exemplo, é possível definir as ações para cada um dos botões dentro de um único método.

Espero ter ajudado.

Té mais.

Ajudo muito M@C!!! Muito obrigado!!! Eu não notei que a classe já implementava o ActionListener!!! E vc já sabia mesmo sem eu ter copiado essa parte do código. Obrigado!!!