Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer composant par son nom en chaîne de caractères

    18 mai 2012 à 9:00:54

    Bien le bonjour à vous as de la programmation ;) !

    Je viens vers vous aujourd'hui car je suis coincé au niveau d'une étape dans le travail que j'ai à faire pour mon stage.

    Je vais être simple et bref. Je travail sur un interpréteur de commande en Java donc ...
    Cette interpréteur a pour but d'afficher, de calculer, de masquer ... à l'aide de mot clé (AFFICHER, CALCULER,...).

    L'utilisateur pour par exemple saisir : AFFICHER(si[3<4]|Bonjour|bouton1)
    Ainsi, si 3<4 , ce qui est le cas ^^, le JButton bouton1 doit prendre en setText "Bonjour".

    Cette opération est un succès pour le cas ou je ne spécifie pas de cible(il prend donc le composant courant).

    Mais voila le problème est : sachant que l'utilisateur va entrer le nom de la cible en temps que chaîne de caractère. Comment associer cette chaîne de caractère au nom du composant lui même

    En gros comment faire comprendre à Java que "bouton1" correspond au composant dont le nom est bouton1 ?
    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2012 à 12:45:17

      Salut,

      une solution pourrait être de stocker tous tes composants auxquels l'utilisateur peut faire référence dans une Map, par example :
      Map buttons = new Map<String, JButton>();
       buttons.put("bouton1", new JButton("bouton1"));
      

      Ensuite dans la fonction Afficher qui a pour parametre targetName :
      JButton target = buttons.get(targetName);
       if (target != null) {
         target->setText(value);
       } else {
          //l'utilisateur a rentré un mauvais nom, gérer l'erreur.
       }
      


      Sinon il y a aussi possibilité de retrouver tous les composants enfant d'une fenetre ou d'un autre composant, et ensuite de récupérer le composant avec le bon nom.
      • Partager sur Facebook
      • Partager sur Twitter
        21 mai 2012 à 8:57:05

        En fait au lancement de mon application, il y a une JFrame principale. Dans cette JFrame il y a tous les composants possible ( panel, bouton, ....)

        Et il me faut récupérer tous ces composants au lancement de l'application.

        J'ai déjà penser au getComponent(), mais celui me renvoi une taille de 1 pour plus de 10 composant dans la JFrame.

        Sachant que l'utilisateur pourra lui-même rajouter des composant avec Matisse, je ne peut pas recenser les composants dans une Map, puis-qu’à tous moments, il peut en rajouter et/ou en supprimer.

        Merci tout de même ;)
        • Partager sur Facebook
        • Partager sur Twitter

        Récupérer composant par son nom en chaîne de caractères

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown