ActionEvent

6 respostas
J

Como eh a passagem fe eventos em Java?

6 Respostas

danieldestro

http://java.sun.com/docs/books/tutorial/uiswing/events/index.html

J

sim, mas…
to enrolado ainda
veja o cod abaixo:

import java.awt.event.*;

public class ExitWindow extends WindowAdapter {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}

import javax.swing.JFrame;

public class ExitFrame extends JFrame {

public ExitFrame() {

super(Frame Title);

setSize(300, 100);

ExitWindow exit = new ExitWindow();

        addWindowListener(exit);

setVisible(true);

}
public static void main(String[] arguments) {
    ExitFrame sf = new ExitFrame();
}

}

como eh q o método sabe o q executar?
public void windowClosing(WindowEvent e) {

pq, pelo q eu saiba…teria q passar algo para p o metodo…mas, aonde?
pq todo metodo q passar um valor certo? e eh ahi q eu fico encucado

outra o pq em NEGRITO eh assim:

someObject.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {

//Event listener implementation goes here…

}

});

começa com ( e termina lah em baixo ?? o ) ;

ai…desculpa tanta confusao

danieldestro

Quem executa o método windowClosing(WindowEvent e) é o proprio Java, ou melhor, os componentes do Swing (ou AWT). Isso ocorre quando você fecha a janela (frame).

O exit que você passa ao método addWindowListener quer dizer que o “exit” é o objeto WindowAdapter que ficará responsável por ficar observando os eventos da Janela.

E sobre:

someObject.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { ...//Event listener implementation goes here... } });

Isto é uma declaraçã de Classe interna anônima (Annonimous Inner Class).

J

Então Classe interna anônima (Annonimous Inner Class), são sempre assim? e naõ importa saber como o método/evento eh feito…
isso eh por conta dos componente SWING certo?

danieldestro

Classe Interna anônima é uma classe que você declara dentro de outra classe, sem especificar um nome. Quando você faz isso, você declara a classe já criando uma instância dela.

Geralmente se faz isso para não criar dezenas de classes públicas, que somente serão usadas por telinhas AWT/SWING.

Mas essas classe não tem nada a ver com Swing, mas podem sim serem usadas com as classes do SWING/AWT.

Ao invés disso (classe interna anônima):

someObject.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
...//Event listener implementation goes here...
}
});

Você poderia ter feito isso (classe interna anônima):

MouseAdapter ma = new MouseAdapter() {
  public void mouseClicked(MouseEvent e) {
    //Event listener implementation goes here...
  }
};

someObject.addMouseListener( ma );

Ou ainda isso (classe normal):

class MeuMouseAdapter extends MouseAdapter {
  public void mouseClicked(MouseEvent e) {
    //Event listener implementation goes here...
  }
}

public class SeuFrame extends JFrame {

  //...
  MouseAdapter ma = new MeuMouseAdapter();
  someObject.addMouseListener( ma );
  //...
}
J

Ahhhh…agora !
blz Daniel…valeu cara!
Grato

Criado 24 de setembro de 2004
Ultima resposta 24 de set. de 2004
Respostas 6
Participantes 2