Ação para Botão

Boa tarde galera,

Estou com uma duvida.
Como eu faço para dar ação para um botão?

Tipo, se o botão for clicado pelo user o botão executa uma ação.

Valeu !
| Pacifier |

Dá uma olhada aqui

E ai blz?

Vai ai um exemplo:

button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // aqui vai a ação } });

Espero ter ajudado

Abraços

acho que assim você entender melhor =)

 
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class botao  implements ActionListener {
       private JButton botao1;

       public botao1() 
       {  
        ...
        botao1 = new JButton("botao");
        botao1.addActionListener( this );

        ...
       }
       public void actionPerformed(ActionEvent e) {
              if( e.getSource() == botao1 ) {
                        //acao
                         ... 
               } 
         }
      ....
}

1 curtida
O pessoal acima te deu exemplos que se referem ao "click", ao acionamento do botão, ou seja, quando o botão "recebe" um [b]evento[/b] ActionPerformed. Existem várias outras ações (eventos) a que um botão, por exemplo, pode responder. Por exemplo, existe eventos de foco, de mouse, de teclado, e muitos outros.
O legal é vc entender essa dinâmica de [b]tratamento de eventos[/b] em java: Vc tem um componente gráfico, um botão por exemplo. Este botão "dispara" alguns eventos dependendo da forma como o usuário interage com ele (passa o mouse sobre, clica, aperta uma tecla, etc...). Para que seja possível um determinado evento, vc tem que cadastrar um objeto que será o listener desse evento, um objeto que "ouvirá" o evento "disparado" pelo botão. Isto é feito, olhando o código do colega deh, na seguinte linha:

Neste caso, a própria classe que tem a linha acima é a que ouvirá o evento do botão botao1.
Cada tipo de evento está associado com uma interface, a qual deve ser implementada pela classe que “ouvirá” o evento. No exemplo do deh, a classe botao implementa a interface ActionListener, que é a interface associada com o evento de ação (no caso do botão, o clique). Supondo que, por exemplo, quisessemos tratar eventos do botão relacionados ao foco, teriamos que registrar para este botão um evento de foco. Ficaria algo assim:

Neste caso, estamos dizendo o seguinte: “Escuta JVM, quando o botao1 disparar um evento do tipo FocusListener, vai na instância ‘new Handler()’ e se vira lá pra tratar esse evento”. Sendo assim, a classe Handler (inventei agora) deve implementar a interface FocusListener, que tem dois métodos: public void focusGained(FocusEvent e) e public void focusLost(FocusEvent e), o primeiro para quando o componente ganha o foco e o segundo para quando o componente perde o foco.
Mas como fica essa história de “JVM, vai lá no listener e se vira lá…”? Usando esse exemplo do foco, quando o nosso botao1 ganhar o foco, a JVM vai ver se ele tem algum FocusListener registrado. Como no nosso caso tem (uma instância anônima da classe Handler), a JVM procura nesse objeto o método que está associado com o evento ocorrido (focusGained, neste caso) e o executa. É no conteúdo deste método que se dará o tratamento do evento de ganho de foco do botao1.
E o que diabos é aquele parâmetro do tipo FocusEvent??? FocusEvent é uma classe relacionada com eventos de foco, ela traz varias funcionalidades úteis ao tratamento de foco, como por exemplo o método getOppositeComponent(), que retor o Component envolvido na mudança de foco (o Component de onde veio o foco, se for um caso de ganho de foco, ou o Component para onde vai o foco, no caso de perda de foco). Assim também acontece com a interface ActionListener, que tem apenas o método actionPerformed(ActionEvent e), que recebe um ActionEvent, que tem métodos como getWhen(), que retorna um long representando quando o evento ocorreu.

Espero ter ajudado.
PS.: Se por acaso eu escrevi alguma besteira aqui, por favor corrijam e desculpem! hehehehe

1 curtida

Poxa muito grato :-o !!