Probleme d'un JFrame.dispose();

Résolu
xCirdan Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
xCirdan Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
Quelqu'un pourrait-il me dire pourquoi lorsque j'appuie sur un bouton, rien ne se passe SVP.

import java.awt.event. *;
import java.awt. *;
import javax.swing. *;
import java.awt.GridLayout;

JButton M1,M2,M3;

JFrame Menu;

class GestionClic implements ActionListener {
   public void actionPerformed(ActionEvent e) {
    if (e.getSource()==M1){
    Menu.dispose();
   }else if(e.getSource()==M2){
    Menu.dispose();
   }else if(e.getSource()==M3){
    Menu.dispose();
   }
   }
}

void main() {
   JFrame Menu = new JFrame("Menu");
   Menu.setVisible(true);
   Menu.setLocationRelativeTo(null);
   Menu.setSize(500, 500);
   Menu.setLocationRelativeTo(null);
   GestionClic GC = new GestionClic();
   M1 = new JButton("Solo");
   M2 = new JButton("Multi");
   M3 = new JButton("Quitter");
   Menu.add(M1);
   M1.addActionListener(GC);
   Menu.add(M2);
   M2.addActionListener(GC);
   Menu.add(M3);
   M3.addActionListener(GC);
   GridLayout GL = new GridLayout();
   GL.setColumns(0);
   GL.setRows(3);
   Menu.setLayout(GL);
}


Merci

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Le problème c'est que tu as déclaré deux fois la variable Menu.
La première est ligne 8, variable globale utilisée dans GestionClic.
La deuxième est ligne 23, variable locale utilisée dans le main.

En gros ce qui se passe, c'est que tu ouvres le menu 23, mais que tu demandes à fermer le menu 8. Donc le menu 23 ne se ferme pas...

Remarque : Java's Cool a un comportement particulier car il mélange un peu les deux variable, en Java pur il n'y aurait pas d'ambiguïté et tu aurais un NullPointerException.
1
xCirdan Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Mais si j enlève la ligne 8, j obtiens une erreur me disant que le programme ne connait pas la frame Menu.
0
xCirdan Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
C est bon, j ai résolu le problème. Merci
0