Bonjour,
Dans le programme, l'utilisateur entre une commande par ligne dans un textarea, et chaque instruction est exécutée au saut de ligne, et on met à jour un affichage (style jeu vidéo 2D ultra-basique). Par exemple:
L’évènement associé au Textarea est géré ainsi:NOUVEAU Lion // créé un lion
DEAPLACER 10 // le fait bouger de 10 metres
ANNULER // ah non en fait
Mais voila: si je commente la ligne verte, le panneau est bien effacé, et si je la décommente, les instructions sont bien redessinées jusqu'au bon niveau MAIS par dessus l'affichage déjà existante (en gros la ligne rouge n'a pas été exécutée).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public void keyReleased(KeyEvent e) { String [] instruction; if (e.getKeyCode() == KeyEvent.VK_ENTER) { instruction = code.getText().split("\n"); if (instruction.length > 0) { String last_instruction = instruction[instruction.length - 1].toUpperCase(); instruction = last_instruction.split(" "); if (instruction[0].equals("NOUVEAU")) { //... on met à jour l'affichage sur le JPanel } else if(instruction[0].equals("ANNULER") { on efface tout l'affichage sur le JPanel on place le curseur à la ligne 0 du Textarea tant que (instruction avant ANNULER n'est pas atteinte) { on lance keyReleased(e) on place le curseur sur l'instruction suivante } } } } }
J'ai bien vérifié avec un System.out.println: la ligne rouge est executée seulement si la ligne verte est commentée...
Encore une fois j'ai simplifié le code qui est bien trop gros pour être mis, et la gestion de l'affichage se fait par diverses classes.
Savez vous comment l'expliquer, d'où vient le problème? Si vous avez des questions...
Merci beaucoup je bute depuis des heures...
Partager