Bom dia a todos.
A sintaxe “this” é uma sintaxe recursiva que refere-se a um objeto da própria classe de onde está sendo declarada, e ela não é só utilizada para indicar o listener de eventos, vamos a um exemplo prático para voce entender melhor:
public class Qualquer {
private String mensagem = null;
public void setMensagem(String mensagem) {
/* Aqui voce vai reparar que este método
recebe um parâmetro de nome mensagem
que é igual o nome da variável atributo
mensagem da classe, só que eu quero
colocar o valor do parâmetro mensagem
dentro do atributo de classe mensagem
e eu utilizo o this para referenciar a classe
com o seu atributo, assim */
this.mensagem = mensagem;
}
}
Quando voce declarou a sua classe assim:
.....
public class SimpleGui1B implements ActionListener {
....
....
}
....
Significa que a sua classe está implementando um listener de evento ActionListener, cujos método ActionPerformed se encontra dentro de sua classe, e para que os componentes possa enxergar este método, dentro da sua própria classe, voce deve fazer asssinatura de seus eventos desta forma:
....
button.addActionListener(this);
....
Existe também uma outra maneira de assinar um evento nos componentes, porém esta maneira é ideal, caso voce tenha apenas tres ou no máximo cinco componentes que assinam eventos, que é criar um classe anônima dentro dos métodos de eventos dos próprios componentes, assim:
import javax.swing.*;
import java.awt.event.*;
public class SimpleGui1B {
JButton button;
int n=0;
public static void main(String[] args) {
SimpleGui1B gui = new SimpleGui1B();
gui.go();
}
public void go(){
JFrame frame = new JFrame();
button = new JButton("Click me");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event){
n++;
button.setText("I've been clicked! "+n);
}
});
frame.getContentPane().add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame.setVisible(true);
}
}
Neste último caso, a sua classe não precisa implementar o listener (ouvinte) de evento.
Cappichi