Probleme d'un JFrame.dispose();
Résolu
xCirdan
Messages postés
15
Statut
Membre
-
xCirdan Messages postés 15 Statut Membre -
xCirdan Messages postés 15 Statut Membre -
Quelqu'un pourrait-il me dire pourquoi lorsque j'appuie sur un bouton, rien ne se passe SVP.
Merci
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
-
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. -