1 pièce(s) jointe(s)
Fermeture d'une fenêtre ou un JTextField
Bonjour,
J'ai un problème avec mon code, je pense que ça vient soit de ma fenêtre qui est mal fermée soit du JTextField que je n'utilise pas comme il faut.
Alors je m'explique : J'ai crée un jeu du pendu en Java avec une interface graphique etc. Quand on démarre le jeu, on arrive sur une fenêtre principale, puis, on clique sur Play pour jouer. Après avoir fini la partie (gagner, perdu ou bien simplement fermer la fenêtre), il reste encore la fenêtre principale (logique), si on re-clique à nouveau sur Play, tout fonctionne bien sauf que dès qu'on entre une lettre, cette erreur apparait :
Citation:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at Game.play(Game.java:40)
at Game.update(Game.java:71)
at java.util.Observable.notifyObservers(Observable.java:159)
at MouseDispatcher.fireUpdate(MouseDispatcher.java:28)
at Draw.actionPerformed(Draw.java:211)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
La ligne 40 de la classe Game contient ça :
Code:
already=h.alReadyTried(input.charAt(0));
input étant un String correspondant à la saisie clavier de l'utilisateur (j'utilise charAt(0) pour récupérer la 1ere lettre saisie au cas où il en mette plusieurs.. )
Donc soit mon problème vient de mon JTextField, soit étant donné que la 1ere fois tout se passe bien, c'est ma fenêtre qui est mal fermée. Pour fermer cette dernière j'utilise :
Code:
1 2 3 4
| pan.removeAll();
pan.setEnabled(false);
this.removeAll();
this.dispose(); |
this étant ma fenêtre et pan une classe qui hérite de JPanel. Je ne vois pas quoi faire de plus ?
Comme mon projet contient pas mal de classes, je l'ai zippé et mis en pièce jointe.
Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?
Merci d'avance pour votre aide.