Java
lolita-01
Messages postés
90
Date d'inscription
Statut
Membre
Dernière intervention
-
lolita-01 Messages postés 90 Date d'inscription Statut Membre Dernière intervention -
lolita-01 Messages postés 90 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
j'ai fait aupart avant une application avec java et a chaque fois j'utilise ActionListener et actionPerformed pour les boutons et la je suis tombé sure MouseClicked donc je veux savoir s'il ont le meme effet?
j'ai fait aupart avant une application avec java et a chaque fois j'utilise ActionListener et actionPerformed pour les boutons et la je suis tombé sure MouseClicked donc je veux savoir s'il ont le meme effet?
A voir également:
- Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Le principe est le même, il définit une méthode à appeler en réponse à un évènement, sauf que l'évènement en question est différent.
Par exemple :
Un JButton peut-être activé, aussi bien par un clic, que par l'appui de la barre d'espace.
L'ActionEvent est donc le résultat d'une de ces deux actions, alors que le MouseEvent est lui spécifique au clic de souris. Pour autant, le MouseEvent peut exister sans activer le bouton (on clic sur le bouton, mais on relâche la souris en dehors du bouton).
Et pour le KeyEvent c'est encore différent puisque (par défaut) seul le relâchement de la barre d'espace va provoquer l'activation du bouton, alors que le bouton de tabulation va passer au composant suivant (et déclencher un FocusEvent), et les autres touches seront sans effet.
Donc l'actionListener n'a pas le même effet que les autres Listener, il se déclenche seulement lorsque l'action a eu lieu, alors que les autres Listener repèrent les évènements particuliers qui permettent d'évaluer comme cette action réussie ou non.
Voici un petit code avec quelques boutons qui affichent certains Listener.
À tester (entre autre) :
* l'utilisation de la tabulation pour se déplacer d'un bouton au suivant
* l'utilisation de la barre d'espace pour déclencher l'activation du bouton
* l'utilisation de la souris pour cliquer un bouton, mais en le relâchant ailleurs pour ne pas activer le bouton.
Par exemple :
Un JButton peut-être activé, aussi bien par un clic, que par l'appui de la barre d'espace.
L'ActionEvent est donc le résultat d'une de ces deux actions, alors que le MouseEvent est lui spécifique au clic de souris. Pour autant, le MouseEvent peut exister sans activer le bouton (on clic sur le bouton, mais on relâche la souris en dehors du bouton).
Et pour le KeyEvent c'est encore différent puisque (par défaut) seul le relâchement de la barre d'espace va provoquer l'activation du bouton, alors que le bouton de tabulation va passer au composant suivant (et déclencher un FocusEvent), et les autres touches seront sans effet.
Donc l'actionListener n'a pas le même effet que les autres Listener, il se déclenche seulement lorsque l'action a eu lieu, alors que les autres Listener repèrent les évènements particuliers qui permettent d'évaluer comme cette action réussie ou non.
Voici un petit code avec quelques boutons qui affichent certains Listener.
À tester (entre autre) :
* l'utilisation de la tabulation pour se déplacer d'un bouton au suivant
* l'utilisation de la barre d'espace pour déclencher l'activation du bouton
* l'utilisation de la souris pour cliquer un bouton, mais en le relâchant ailleurs pour ne pas activer le bouton.
import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; public class Test { public static void main(String...Args) { JFrame frame = new JFrame(); frame.setLayout(new GridLayout(3,3)); for (int i=0; i<3; i++) for (int j=0; j<3; j++) { final String text = String.valueOf(3*i+j+1); JButton button = new JButton(text); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println(text+"\tactionPerformed"); } }); button.addMouseListener(new MouseListener() { public void mouseClicked(MouseEvent arg0) { System.out.println(text+"\tmouseClicked"); } public void mouseEntered(MouseEvent arg0) { System.out.println(text+"\tmouseEntered"); } public void mouseExited(MouseEvent arg0) { System.out.println(text+"\tmouseExited"); } public void mousePressed(MouseEvent arg0) { System.out.println(text+"\tmousePressed"); } public void mouseReleased(MouseEvent arg0) { System.out.println(text+"\tmouseReleased"); } }); button.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent arg0) { System.out.println(text+"\tkeyPressed"); } public void keyReleased(KeyEvent arg0) { System.out.println(text+"\tkeyReleased"); } public void keyTyped(KeyEvent arg0) { System.out.println(text+"\tkeyTyped"); } }); button.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent arg0) { System.out.println(text+"\tfocusGained"); } @Override public void focusLost(FocusEvent arg0) { System.out.println(text+"\tfocusLost"); } }); frame.add(button); } frame.setSize(200,200); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }La confiance n'exclut pas le contrôle