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 -
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.
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.
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.
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.