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

Java Discussion :

[Conception] Tester quel bouton a effectué l'action


Sujet :

Java

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 226
    Par défaut [Conception] Tester quel bouton a effectué l'action
    j'ai créé une classe qui permet de gérer les actions des différents boutons. Le problème c que je dois tester le Actionevent.getactioncommand() dans un switch et que le switch n'accepte pas les type string. Quelle autre solution s'offre a moi ?

  2. #2
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut Re: tester quel bouton a effectuer l'action
    Citation Envoyé par Cyborg289
    j'ai créé une classe qui permet de gérer les actions des différents boutons. Le problème c que je dois tester le Actionevent.getactioncommand() dans un switch et que le switch n'accepte pas les type string. Quelle autre solution s'offre a moi ?
    une serie de if .......

    ou alors si tu tiens absolument a utiliser un switch, tu fais afficher des numeros sur le bouton au lieu du texte. et le texte que tu recuperes tu fais un parseInt dessus et ca sera un entier ... mais bon ... c'est pas élégant .

  3. #3
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 48
    Par défaut
    si tu utilises la 1.5 n'y a-t-il pas les énumérations qui permettent de faire des switch sur des strings ?

    dites moi si je me trompe.

  4. #4
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut
    essaye un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    switch(e.getSource().hashCode()){
       case boutton1.hashCode():  break;
       case boutton2.hashCode():  break;
    }
    Difficile d'avoir 2 fois le meme résultats de hashcode

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par cootchy
    si tu utilises la 1.5 n'y a-t-il pas les énumérations qui permettent de faire des switch sur des strings ?

    dites moi si je me trompe.
    tu te trompes les branches case d'un switch ne supportent que des valeurs discrètes (types primitifs boolean, char, byte, short, int, long).

  6. #6
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par bakonu
    essaye un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    switch(e.getSource().hashCode()){
       case boutton1.hashCode():  break;
       case boutton2.hashCode():  break;
    }
    Difficile d'avoir 2 fois le meme résultats de hashcode
    Faux les valeurs après un case doivent être des constantes et non des expressions.

  7. #7
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut Re: tester quel bouton a effectuer l'action
    Citation Envoyé par Cyborg289
    j'ai créé une classe qui permet de gérer les actions des différents boutons. Le problème c que je dois tester le Actionevent.getactioncommand() dans un switch et que le switch n'accepte pas les type string. Quelle autre solution s'offre a moi ?
    Une solution possible mais qui ne présente pas forcément un grand intérêt est d'avoir une HashMap avec comme clé la valeur du ActionCommand et comme valeur un entier (ou tout autre type primitif à valeurs discrètes).
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    static HashMap actionCommandMap = new HashMap();
     
    private final static int ACTION_OPEN  = 1;
    private final static int ACTION_CLOSE = 2;
    private final static int ACTION_QUIT  = 3;
     
    static {
      actionCommandMap.put("Ouvrir", new Integer(ACTION_OPEN));
      actionCommandMap.put("Fermer", new Integer(ACTION_CLOSE));
      actionCommandMap.put("Quitter", new Integer(ACTION_QUIT));
    }
     
    void doActionCommand(String actionCommand) {
      Integer numAction = (Integer) actionCommandMap.get(actionCommand);
     
      if (numAction != null) {
        switch (numAction.intValue()) {
          case ACTION_OPEN:
              ...
          case ACTION_CLOSE:
              ...
          case ACTION_QUIT:
              ...
        }
      }
    }
    Si tu es en Java 1.5 tu peux utiliser un EnumSet à la place de la HashMap.

Discussions similaires

  1. [WinForms]comment savoir sur quel bouton j'ai cliqué?
    Par bossun dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 14/03/2006, 14h18
  2. Quel bouton radio a été coché
    Par leloup84 dans le forum Langage
    Réponses: 7
    Dernier message: 13/03/2006, 17h55
  3. [ActionEvent][JMenuItem]Connaitre quel bouton a été cliqué
    Par leminipouce dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 16/02/2006, 10h37
  4. [C#] Savoir quel bouton a déclenché l'évènement
    Par Amerok dans le forum ASP.NET
    Réponses: 4
    Dernier message: 01/12/2005, 15h19
  5. Formulaire -> pour savoir sur quel bouton on a cliqué.
    Par Thierry8 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/09/2005, 18h53

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