Partage
  • Partager sur Facebook
  • Partager sur Twitter

JPanel et ActionListener

Sujet résolu
    28 juillet 2015 à 19:32:16

    Bonjour 

    je réalise un jeu du pendu et je me pose une question comment faire interagir un bouton d'un JPanel avec un autre

    en gros j'ai un JPanel avec tout les toutes les lettres et un autre avec les images.
    Quand j'appuie sur le bouton j'aimerai que la lettre s'affiche sur l'autre panel.

    Si vous avez des idées je suis preneur!

    Merci bien :)
     

    -
    Edité par zoozo 28 juillet 2015 à 19:32:27

    • Partager sur Facebook
    • Partager sur Twitter
      29 juillet 2015 à 9:54:09

      Bonjour,

      Voilà l'idée : Tu auras une liste de JButton avec un ActionListener pour les lettres + une liste de JLabel par rapport au nombre de lettres du mot. Lors d'un clique sur un bouton, une méthode de ton ActionListener va être appelée et c'est dedans que tu vas modifier le contenu des JLabel  avec la méthode JLabel.setText() (suivie d'un repaint() ;)

      • Partager sur Facebook
      • Partager sur Twitter
        29 juillet 2015 à 11:17:11

        Oui merci je crois que ça marche c'est ça dont tu me parlais ? :)

        public Touche(int ascii, EcranPendu pan) {
        		// TODO Auto-generated constructor stub
        		this.lettreAssocie = ((char) ascii)+"";
        		this.setText(lettreAssocie);
        		this.couleurDeBase = Color.LIGHT_GRAY;
        		this.setBackground(this.couleurDeBase);
        		cadrePendu = pan;
        		this.addActionListener(cadrePendu);
        public class EcranPendu extends JPanel implements ActionListener{
        public void actionPerformed(ActionEvent e) {
        	Touche a = (Touche)e.getSource();	
        	entrerLettre(a.getlettreAssocie());
        	repaint();
        		
        		
        }

        Par contre comment faire pour changer des lettre dans une String?
        j'utilise un StringBuffer avec la methode replace mais je ne peux pas remplacer toutes les occurences de la lettre ( si il y a 3 B le premier va être remplacé mais pas les suivant)


        • Partager sur Facebook
        • Partager sur Twitter
          29 juillet 2015 à 13:06:44

          Tu n'es pas obligé d'utiliser StringBuffer. Tu peux utiliser tout simplement la classe String.

          Pour remplacer une lettre d'un String par une autre tu peux faire :

          String text = "coucou";
          System.out.println(text.replaceAll("u", "b"));

          qui va écrire : "cobcob"

          • Partager sur Facebook
          • Partager sur Twitter
            29 juillet 2015 à 13:38:50

            A nickel merci!

            dernière petite question est-il possible de transformer une String en Tableau de char ? 

            • Partager sur Facebook
            • Partager sur Twitter
              29 juillet 2015 à 14:09:43

              La première méthode pour avoir un tableau de String, la deuxième pour un tableau de char.

              String[] strArray = myString.split("");
              char[] charArray = myString.toCharArray();

              ;)

              -
              Edité par akinatorus 29 juillet 2015 à 14:12:12

              • Partager sur Facebook
              • Partager sur Twitter
                29 juillet 2015 à 17:28:26

                ah merci tout fonctionne :)
                • Partager sur Facebook
                • Partager sur Twitter

                JPanel et ActionListener

                × 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