JAVA : problème avec un bouton

Fermé
stef - 2 juin 2011 à 23:10
 stef - 3 juin 2011 à 00:20
Bonsoir à tous,

J'ai un problème de développement : j'essaye de lancer une méthode lorsque l'utilisateur clic sur un bouton, mais apparemment on entre pas dans la ActionListener. Je ne comprend pas pourquoi...


CLASS VueMemo :


// Méthode qui crée le menu :
	public JPanel initContenuMenu(){
		
		JPanel menu = new JPanel();
		menu.setLayout(new GridLayout(5,1));
		
		
		String nom[]={"Voir","Jouer","Quitter"};
		
		//on crée les 3 boutons		
		for(int i=0; i<3; i++){
			JButton bouton = new JButton(nom[i]);	
			bouttonsMenu[i] = bouton;
			menu.add(bouton); 
		}	
	return menu;
	}	


Je met le menu dans un conteneur :
	public JPanel conteneurGeneral(){
		conteneur.setLayout(new BorderLayout()); 
		
		conteneur.add(initContenuMenu(), BorderLayout.WEST);
		conteneur.add(initContenuGrille(), BorderLayout.CENTER);
			
		return conteneur; //renvoie le menu et la grille	
	}


CLASS ActionMenu :

public class ActionMenu implements ActionListener{
	
	VueMemo vue;
	ModeleMemo modele;

//Constructeur 

	ActionMenu(ModeleMemo modele, VueMemo vue){
		this.modele = modele;
		this.vue = vue;
		vue.ajouterListenerMenu(this); //Ajout d'un écouteur pour chaque bouton du menu
	}

//Methodes

public void actionPerformed(ActionEvent e) {
		JButton boutonCliquee = (JButton)e.getSource();
		System.out.println("on est dans ActionMenu"); // POUR TEST: marche pas
			if(e.getActionCommand() == "Voir"){
				vue.voirToutesLesCartes();
				
			}


J'ai mis un System.out.println dans la méthode actionPerformed de la classe ActionMenu, pour voir si on y entrait, mais quand je test et clique sur le bouton concerné, ça n'affiche pas la phrase "on est dans ActionMenu". Sa n'affiche et ne fait rien.

J'espère que quelqu'un aura une réponse à mon problème. Je vous remercie par avance.
A voir également:

1 réponse

Ah en fait j'ai trouvé! Ça marche, j'ai juste oublié d'instancier le MenuAction dans ma classe Application, créée pour tester. C'est un bête oubli, mais qui m'a pris beaucoup de temps à trouver ! lol.

Par rapport à ça j'ai une question : j'instancie mes classes ModeleMemo, VueMemo et ControleurMemo dans une classe Application pour tester que tout fonctionne. Mais maintenant que j'instancie donc aussi MenuAction à la façon du contrôleur (c'est-à-dire que je lui passe le modèle et la vue en paramètre).

Donc en gros ça fait comme ci j'avais deux controleur pour mon application : une qui gère certains boutons, et MenuAction qui gère les écouteur des boutons du menu.

Je me posai donc la question : est ce que ça se fait ? peut-on avoir plusieurs controleur ? ou est-il préférable que j'instancie MenuAction dans la vue ? je débute en MVC, alors je ne sais pas si c'est correct de précéder ainsi.

Je vous remercie d'avance pour vos conseils.
0