Olá, eu tenho o código abaixo que abre uma janela e altera a mensagem no botão cada vez que é clickado, minha dúvida é: por que o método actionPerformed só é disparado no evento click do botão e não em qualquer outro evento como o onmouseover e etc?
import javax.swing.*;
import java.awt.event.*;
public class SimpleGui1 implements ActionListener {
JButton button;
public static void main(String[] args) {
SimpleGui1 gui = new SimpleGui1();
gui.go();
}
public void go(){
JFrame frame = new JFrame();
button = new JButton("Click Me");
button.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(button);
frame.setSize(300,300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event){
if(button.getText().equals("Click Me"))
button.setText("I've been clicked!");
else
button.setText("Click Me");
}
}
o método action performed só é disparado quando uma ação é executada, no caso do botão, essa ação é o clique. as ações onmouse e etc são ações do mouse. assim como se vc implementar o action performed em um text field ele vai disparar a cada tecla que você digitar. o que pode ser útil quando vc quer que o tratamento do enter seja igual ao do tab em um formulário com vários campos, pra cada vez q vc digitar (pex: nome, endereço, etc) e apertar enter, o foco do prog passa pro outro campo, e por ai vai…
cada componente tem uma ação própria, q vai dispara o evento xD
o método action performed só é disparado quando uma ação é executada, no caso do botão, essa ação é o clique. as ações onmouse e etc são ações do mouse. assim como se vc implementar o action performed em um text field ele vai disparar a cada tecla que você digitar. o que pode ser útil quando vc quer que o tratamento do enter seja igual ao do tab em um formulário com vários campos, pra cada vez q vc digitar (pex: nome, endereço, etc) e apertar enter, o foco do prog passa pro outro campo, e por ai vai…
cada componente tem uma ação própria, q vai dispara o evento xD[/quote]