IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Comment appeler une action à partir d'une autre action ?


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Points : 71
    Points
    71
    Par défaut Comment appeler une action à partir d'une autre action ?
    Bonjour,
    je pensais avoir un niveau correct en Java, mais je me rend compte que je ne sais toujours pas faire les choses les plus simples...

    Tout bêtement, j'aimerais faire une action sur un bouton, qui celle-ci appelle une autre action.

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JButton gras = new JButton( "Gras" );
    gras.addActionListener( new MiseEnForme("GRAS") );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class MiseEnForme implements ActionListener{
    		String miseEnForme;
    		public MiseEnForme( String mef ){
    			miseEnForme = mef;
    		}
    		public void actionPerformed(ActionEvent e){
    			Action bold = new HTMLEditorKit.BoldAction();
    		}
    	}
    C'est donc la partie en rouge qui ne marche pas.

    Si je fais directement l'action en rouge sur le bouton ça marche. Mais j'aimerais ajouter des traitements après... C'est pourquoi je l'ai fait dans une classe.

    Comment appeler la méthode BoldAction() de la classe HTMLEditorKit ?
    Merci d'avance !
    Bastien.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 153
    Points
    153
    Par défaut
    Je n'arrive pas à comprendre le but recherché, donc mon explication sera peut être à coté de la plaque...

    Essaye de mettre des traces, mais à mon avis, le code passe bien dans la méthode actionperformed();
    Ajoute ceci pour voir si tu as quelque chose dans la console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		public void actionPerformed(ActionEvent e){
    			System.out.println("Click click");
    			Action bold = new HTMLEditorKit.BoldAction();
    		}

    Sinon, peut être que ton problème vient du fait que tu ne gardes aucune référence de ton listener.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Points : 71
    Points
    71
    Par défaut
    Oui oui, actionPerformed est bien appelé.

    Citation Envoyé par DeathMaker Voir le message
    Sinon, peut être que ton problème vient du fait que tu ne gardes aucune référence de ton listener.
    Je ne comprends pas :s

    EDIT:
    Le but recherché est que lorsque j'appuie sur le bouton "gras", le texte sélectionné soit mis en gras ( classe boldAction ), puis que je mette à jour une table de correspondance ( méthode mAJListeCorrespondance() ...inutile d'expliquer...) après que le texte ai été mis en gras.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Points : 71
    Points
    71
    Par défaut
    En attendant, j'ai trouvé une méthode alternative.

    2 actionListener

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Points : 190
    Points
    190
    Par défaut
    Tu peut aussi lier des actions à aux JComponent, à l'aide des méthodes [get|set]ActionMap, ceci te permet d'avoir une gestion centralisé des actions.


    http://java.sun.com/j2se/1.4.2/docs/...ActionMap.html

    http://java.sun.com/j2se/1.4.2/docs/...wing.ActionMap)

  6. #6
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Points : 71
    Points
    71
    Par défaut
    Merci pour la réponse, je regarderais demain !

    (J'ai pas les yeux en face des trous la... )

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/01/2009, 12h45
  2. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  3. Réponses: 2
    Dernier message: 09/05/2007, 18h43
  4. Réponses: 6
    Dernier message: 30/09/2005, 00h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo