CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

L'utilisation des actionslistener en java

Pseudo supprimé
Pseudo supprimé 11 septembre 2015 à 10:12:54

Je ne comprends pas sans déconner :hap:

Si vous pourriez m'expliquer de manière simple leur utilisation.

On met un bouton en écoute mais j'ai du mal sur la syntaxe.

Merci d'avance.

Bunyan
Bunyan
Niveau 17
11 septembre 2015 à 10:38:32

C'est de la programmation événementielle : tu indiques la réaction à un événement (dans ton cas : que faire lorsqu'un bouton est "pressé").

Tu as plusieurs manières de faire :
- la classe "englobante" hérite de ActionListener, tu indiques que le listener est "this" et tu implémentes : je n'aime pas cette méthode car je trouve qu'elle alourdit énormément le code et le rend illisible.
- tu crées une classe anonyme d'ActionListener : tu crées le listener directement où celui-ci est utilisé.
- tu crées une classe interne nommée : c'est la même que la classe anonyme, mais ça permet un autre découpage. C'est à la préférence de chacun.
- tu crées une classe nommée : ce cas est à utiliser si tu peux factoriser ton listener et le réutiliser pour éviter les duplications de code et faciliter la maintenance.

Au niveau code, basiquement, c'est :

JButton button = new JButton("My wonderful button");
button.addActionListener(new ActionListener() {
	
@Override
	public void actionPerformed(ActionEvent event) {
		System.out.println("Button clicked !");
	}
});

(code non-testé)

Est-ce que cela répond à tes interrogations ?

EDIT : tiens, la balise code ne conserve plus les tabulations en début de ligne x)

Message édité le 11 septembre 2015 à 10:39:20 par Bunyan
redangeal
redangeal
Niveau 10
11 septembre 2015 à 11:23:49

Le plus simple pour commencer est la méthode de Bunyan.

Ta classe qui veut "écouter" un objet (button, fenetre etc.) doit implémenter l'interface ActionListener.

Ensuite après avoir crée ton objet tu lui ajoute un "écouteur d'événement" avec la commande "addActionListener()" et tu passe ensuite en paramètre l'instance de ton listener. Si ta classe implémente l'interface tu passera this en paramètre ou si tu veut toi même créer ton propre listenner tu crée un nouveau actionListener comme l'a montré Bunyan dans son code.

Encore une fois pour rester simple ta classe implémente l'interface ActionListener, tu ajoute à ton objet un ActionListener et dès qu'un événement se passe sur ton bouton (comme un clic) la fonction "actionPerformed(ActionEvent e)" est appelé. Si tu implémente l'interface tu es obligé d'avoir cette fonction.

Implémenter l'interface est la manière la plus simple, mais ça peut vite devenir le bordel si tu veux définir plusieurs action listener différent, de ce fait créer toi même le listener exactement comme dans le code de Bunyan permet d'obtenir un code propre et plus lisible si tu dois gérer plusieurs événements différent.

Pseudo supprimé
Pseudo supprimé 11 septembre 2015 à 11:29:57

Ah ok merci les gars. J'ai compris

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment