Partage
  • Partager sur Facebook
  • Partager sur Twitter

Changer une image dynamiquement

Sujet résolu
    21 mai 2012 à 20:22:17

    Bonjour,
    J'ai actuellement un menu de sélection de personnage (pour ceux qui veulent voir à quoi il ressemble a peu près : cf. cours JAVA sur les menu et boîte de dialogue ). Dans ce menu j'ai donc une image, mais je voudrais que l'image change en fonction du sexe, de la classe et de la race que le joueur choisis. Bref, si on choisis une femme elfe de classe archère l'image devra être différente que celle d'une femme elfe de classe guerrière.
    Est-il possible de changer l'image dynamiquement ?
    Merci
    perfide-cuillère
    • Partager sur Facebook
    • Partager sur Twitter
      22 mai 2012 à 16:56:52

      Oui. Tu surcharge la méthode getIcon() de tes JMenuItem en créant une classe qui hérite de JMenuItem avec :
      @Override
      public Icon getIcon() {
          if (isMale) {
              if (race.equals(machin)) {
                  return MALE_MACHIN_ICON;
              } etc ...        
          } else {
              if (race.equals(machin)) {
                  return FEMALE_MACHIN_ICON;
              } etc ... 
          }
      }
      

      Tu peux utiliser une enum pour les icon. isMale race, etc sont des attributs de ta classe.
      • Partager sur Facebook
      • Partager sur Twitter
        22 mai 2012 à 18:02:42

        Merci de ta réponse ! :D
        En revanche tu me dis d'utiliser des JMenuItem : moi pour mon image s'était plus un JLabel ou avec paintComponent()... c'est quoi c'est JMenuItem ?
        • Partager sur Facebook
        • Partager sur Twitter
          22 mai 2012 à 18:40:22

          Un JMenuItem c'est ce que tu trouves dans les menus déroulants (en haut de ta fenetre : Ficher/Edition/Affichage...)

          Il y a plusieurs façons pour lire une image, tu peux utiliser:

          Image newImage = ImageIO.read(new File(mImagePath));

          Attention néanmoins à la taille de l'image que tu lis, tu devras très certainement la redimensionner.
          • Partager sur Facebook
          • Partager sur Twitter
            22 mai 2012 à 19:40:14

            D'accord merci, mais du coup, je ne peux pas utiliser ces JMenuItem vu que je ne n'ai pas de menu en haut de ma Frame de sélection de personnage :)
            • Partager sur Facebook
            • Partager sur Twitter
              22 mai 2012 à 23:11:43

              Si tu regarde l'api java 6 ou 7, tu peux voir que la classe JLabel possède aussi une méthode getIcon que tu peux surcharger comme je l'ai expliqué précédemment.
              • Partager sur Facebook
              • Partager sur Twitter

              Changer une image dynamiquement

              × 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