Tratamento de eventos

2 respostas
M

Alguém poderia de explicar claramente como se trata eventos?
Por favor nao me mostrem links ou recomendacoes de tutorias…
Ja li muita coisa e nao entendi lhufas!!!

Quero clicar em um botao e este me retornar uma mensagem.
Sei que é baba, mas eu gostaria muito de entender direitinho como isto funciona.

Eu estou usando o JBUILDER 8, que faz tudinho pra mim, eu só preciso entrar com as instrucoes que serao executados quando ocorrer o evento, mas isto é muito mecânico…

Alguém me ajuda?

Valeuz!!!

2 Respostas

D

Vamos lá, vamos partir de um programinha bem simples!

public class Teste extends JFrame implements ActionListener {
   
   private JButton btn;

   public Teste() {

      JPanel p = new JPanel();
      p.setLayout(new FlowLayout(FlowLayout.CENTER));

      btn = new JButton("Clique");
      btn.addActionListener(this);

      p.add(btn);

      getContentPane().setLayout(new BorderLayout());
      getContentPane().add(p, BorderLayout.SOUTH);

   }

   public void actionPerformed(ActionEvent e) {
      Object source = e.getSource();
      if (source == btn) JOptionPane.showMessageDialog(this, "Exemplo");
   }

   public static void main(String[] args) {
      JFrame f = new Teste();
      f.setVisible(true);
   }
}

Neste exemplo, fiz um botão responder a um clique, exibindo uma caixa de mensagem com a palavra "Exemplo".

Para o botão responder ao clique adicionamos um "ouvinte de eventos".
Isso foi feito na linha btn.addActionListener(this);. Na verdade você pode ter vários objetos interessados nos eventos gerados por um determinado objeto...; assim você pode adicionar vários listeners (ouvintes) para um mesmo objeto.

Ocorre que esse objeto ouvinte tem que implementar a interface ActionListener (repare que a classe que criamos implementa essa interface). Sendo assim, a classe que implementa a interface ActionListener tem que implementar o método public void actionPerformed(ActionEvent e).

Quando o botão recebe o clique do mouse (ou um evento que o valha -- como exemplo, com o botão em foco, pressionar a barra de espaço) o controlador do botão notifica os ouvintes chamando o método actionPerformed() (ele sabe que o método existe porque os ouvintes tem que implementar a interface ActionListener).

Entendeu?! Se não me diz e eu tento de novo! :)

M

Pô dango, vc explicou tão bem que eu nem sei se quero postar mais duvidas com relacao a isto… Valeu mesmo!!

Seguinte: Vou testar a parada e qualquer duvida eu entro aqui de novo, combinado assim?CERRRRRRTO!!!

Um abraço!!

Criado 20 de maio de 2003
Ultima resposta 20 de mai. de 2003
Respostas 2
Participantes 2