Partage
  • Partager sur Facebook
  • Partager sur Twitter

Passage de variable

    12 octobre 2010 à 19:22:28

    Bonjour !

    Inutile de vous coller le programme à lire, il est trop long XD
    Mais pour faire court j'aimerai passer des variables d'une classe à l'autre :

    // import et blabla
    class A extends JPanel
    {
        int nombre=0;
        // on déclare 2 radioButton avec un ButtonGroupe : radio1,radio2
        radio1.addItemListener(new ecout1());
        radio2.addItemListener(new ecout3());
    
        class ecout1 implements ItemListener
    
    	{
    
    		public void itemStateChanged(ItemEvent evt)
    
    		{
    
    			evt.getItem();
        		        if(evt.getStateChange() == ItemEvent.SELECTED)
        		     	nombre = 1;	  // Un System.out.println du nombre m'affiche 1
    
    		}
    
    	}
        public int getNombre()
    
        {	
               // Le System.out.println m'affiche 0	
    
    	     return nombre;							
    
        }
    }
    


    Mon but est en fait de rendre accessible le choix du radioButton ( 1 si c'est sélectionné ) à une autre classe.
    J'espère que vous avez réussi à comprendre ce que je demande !

    Merci d'avance !!
    • Partager sur Facebook
    • Partager sur Twitter
      12 octobre 2010 à 19:42:10

      Hum, si tu ne nous dit pas un minimum comment sont structurées tes classes c'est compliqué. Mais bon, je pense qu'ici on va encore avoir à faire au pattern observer. Essaye de lire ce tutoriel pour voir si c'est ce que tu cherches à faire. Si ce n'est pas ça essaye d'expliquer un peu la structure de tes classes pour qu'on puisse mieux savoir ce que tu veux faire.
      • Partager sur Facebook
      • Partager sur Twitter
        12 octobre 2010 à 22:12:38

        En effet, je me dois d'expliquer plus le programme.
        Une partie du programme consiste a créer un menu pour un jeu. (On a donc plusieurs classes, correspondant aux différents panneaux : Exemple : Option, Jouer, Règles ...).

        Dans la classe PanneauOption, on y met entre-autre, deux JTextField : nom du joueur 1 et nom du joueur 2. Le truc, c'est que j'aimerai les afficher sous forme de JLabel dans le panneau Jouer.

        J'ai pensé à faire ceci : (uniquement pour prendre le nom du Joueur 1 ici)

        public class PanneauOption extends JPanel
        {
             private JTextField nomJ1 = new JTextField("Nom joueur 1",8);
             private String[] a = {""};
        
             public PanneauOption()
             {
                  add(nomJ1);
                  nomJ1.addActionListener(new nomJ1Enregistrer());
             }
        
             class nomJ1Enregistrer implements ActionListener
        
             {
        
        		public void actionPerformed(ActionEvent evt)
        
        		{
        
        			String a = nomJ1.getText();
        
        		}
        		
        		public JLabel getEssai()
        		{
        			JLabel essai = new JLabel(""+a);
        
        	     	        return essai;
        
        		}
        
             }
        // Et je n'arrive pas a passer essai dans ma classe PanneauJoueur ...
        // j'ai mis ceci :
        
        private JLabel essai = new JLabel("");
        private JLabel scoreJoueur1 = new JLabel("Score de "+ essai +" : "/*+score1*/);
        
        public void setEssai(JLabel essai)
        	{		
        
        	    this.essai = essai;
        
        	}
        


        Le JLabel ne veut pas s'afficher dans la classe PanneauJouer ... Comment faire ?

        De même, j'ai un problème avec des JRadioButtons. Dans ma classe PanneauOption, on choisit 3 niveaux de difficultés différents correspondant au PanneauJouer1, PanneauJouer2, PanneauJouer3

        On a donc un code comme ceci :
        public class PanneauOption extends JPanel
        {
                private JRadioButton niv1 = new JRadioButton("Debutant");
        
                private JRadioButton niv2 = new JRadioButton("Intermédiaire");	
        
        	private JRadioButton niv3 = new JRadioButton("Expert");
        	
        	private ButtonGroup bg = new ButtonGroup();
        
                private int choixDifficulte1=0;
        	private int choixDifficulte2=0;
        	private int choixDifficulte3=0;
        
                public PanneauOption()
                {
                        add(niv1);
                        add(niv2);
                        add(niv3);
                        bg.add(niv1);
            	        bg.add(niv2);
            		bg.add(niv3);
                        niv1.addItemListener(new niv1selected());
                        niv2.addItemListener(new niv2selected());
                        niv3.addItemListener(new niv3selected());
                }
        
                class niv1selected implements ItemListener
        
        	{
        
        		public void itemStateChanged(ItemEvent evt)
        
        		{
        
        			evt.getItem();
            		     if(evt.getStateChange() == ItemEvent.SELECTED)
            		     	choixDifficulte1 = 1;	
        
        		}
        
        	}
        	
        	class niv2selected implements ItemListener
        
        	{
        
        		public void itemStateChanged(ItemEvent evt)
        
        		{
        
        			evt.getItem();
            		     if(evt.getStateChange() == ItemEvent.SELECTED)
            		     	choixDifficulte2 = 2; 	
        
        		}
        	}
        	
        	class niv3selected implements ItemListener
        
        	{
        
        		public void itemStateChanged(ItemEvent evt)
        
        		{
        
        			evt.getItem();
            		     if(evt.getStateChange() == ItemEvent.SELECTED)
            		     	choixDifficulte3 = 3;
        
        		}
        
        	}
        	
        	public int getChoixDifficulte1()
        
        	{				
        
        	        return choixDifficulte1;							
        
        	}
        	
        	public int getChoixDifficulte2()
        
        	{												
        
            		return choixDifficulte2;									
        
        	}
        	
        	public int getChoixDifficulte3()
        
        	{										
        
        	    	return choixDifficulte3;								
        
        	}
        


        Il n'y a pas d'erreur de compilation dans le deuxième code, mais lorsque je récupère la valeur de choixDifficulte il me renvoit toujours 0 ... Comment faire ?


        J'espère avoir été plus précis et plus clair ... !

        Merci d'avance !
        • Partager sur Facebook
        • Partager sur Twitter
          15 octobre 2010 à 17:26:25

          Personne n'a d'idée ? =)
          • Partager sur Facebook
          • Partager sur Twitter
            15 octobre 2010 à 17:42:09

            Pattern observer, non? (comme l'a dit Shaddam)
            • Partager sur Facebook
            • Partager sur Twitter
              15 octobre 2010 à 17:46:59

              J'ai regardé un peu le tuto la dessus, mais je vois pas tellement comment on peut l'utiliser ici ..
              • Partager sur Facebook
              • Partager sur Twitter
                15 octobre 2010 à 17:55:59

                bonjour,
                une méthode d'une classe qui sollicite une méthode getter d'une autre classe!
                • Partager sur Facebook
                • Partager sur Twitter
                  15 octobre 2010 à 18:05:19

                  Je vais regarder ca merci !!!
                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 octobre 2010 à 3:25:57

                    Euh, j'ai pas bien tout regardé, mais déjà pourquoi est-ce que tu as 3 variables choixDifficulte ? Il t'en suffit d'une dont tu changes la valeur non ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 octobre 2010 à 11:21:58

                      Oui, tu as raison, j'ai changé cette variable est j'en ai mis qu'une seule : choixDifficulte.
                      Le problème c'est que dans la classe ItemListener, choixDifficulte reçoit bien la valeur 1,2 ou 3 mais lorsque je veux le retourner dans une autre classe par la méthode getChoix(), la variable choixDifficulte ne varie pas et reste à O.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Passage de variable

                      × 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