Como eh a passagem fe eventos em Java?
ActionEvent
6 Respostas
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
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).
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?
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 );
//...
}
Ahhhh…agora !
blz Daniel…valeu cara!
Grato