J'ai un panneau PanneauTrajet dans lequel je veux afficher le trajet d'un robot qui est enregistré dans un fichier texte. Le trajet est une suite de déplacements caractérisés par une vitesse, une distance et une direction(gauche ou droite), voici un exemple de trajet : "105g;210d;350g;" ou 1 correspond a la vitesse du premier déplacement, 05 au temps de ce premier déplacement et g à sa direction (ici gauche),2 correspond à la vitesse du second deplacement,etc....

Dans mon code j'extrait d'abord les instructions de déplacement pour les enregistrer dans des tableaux, un tableau vitesse ou vitesse[0] correspond à la vitesse du 1er déplacement,vitesse[1] à la vitesse du second,...un tableau temps et un tableau direction. Jusque la tout va bien

Dans ma fonction public void paintComponent je regarde pour chaque deplacement avec un if si la direction est g ou d,mais le problème c'est que le programme ne rentre jamais dans le if

voila mon code qui vaut mieux que de long discours:
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
 
import java.awt.*;
import java.util.*;
import javax.swing.JPanel;
import java.io.*;
import java.lang.Integer;
 
public class PanneauTrajet extends JPanel {
    final int LARGPAN=500;
    final int HAUTPAN=350;
    int nbrDeplacement;
    String ligne;
    int x=250;
    int y=350;
    int newx;
    int newy;
    char vit;
    char tpsDiz;
    char tpsUnit;
    char dir;
    int vitesse[]=new int[100];
    int temps[]=new int[100];
    String direction[]=new String[100];
    int nbrCaractere;
 
 
 
    public PanneauTrajet()  {
        setPreferredSize(new Dimension(LARGPAN,HAUTPAN));
        setBackground(Color.blue);
        try {
            trajet();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
 
    }
 
    public void trajet() throws IOException {
 
        BufferedReader entree=new BufferedReader(new FileReader("trajet.txt"));
        int i=0;
        int j=0;
 
        ligne=entree.readLine();
 
        if (ligne!=null) {
 
 
///////////////Calcul du nombre de deplacements//////////////            
            nbrCaractere=ligne.length();
            nbrDeplacement=nbrCaractere/5;
 
 //////////////Enregistrement des instructions du fichier texte dans les tableaux //////////          
            for(int a=0;a<nbrDeplacement;a++){
                if (ligne!=null) {
                    vit=ligne.charAt(i); //extrait le premier caractère de la ligne
                    String StrVit=String.valueOf(vit); //transforme char en string
                    vitesse[j]=Integer.parseInt(StrVit); //transforme string en int
                    i++;
 
                    tpsDiz=ligne.charAt(i);
                    i++;
                    tpsUnit=ligne.charAt(i);
                    String StrTps=String.valueOf(tpsDiz)+String.valueOf(tpsUnit);
                    temps[j]=Integer.parseInt(StrTps);
                    i++;
 
                    dir=ligne.charAt(i);
                    direction[j]=String.valueOf(dir);
                    i+=2; //pour sauter le point virgule
                    j++;
                }
            }
 
 
            repaint();
 
        }
 
        entree.close();
 
    }
 
    public void paintComponent(Graphics g){
        super.paintComponent(g);
 
        for(int i=0;i<nbrDeplacement;i++){
 
 
            if(direction[i]=="g"){
                newx=x-(vitesse[i]*temps[i]);
 
 
            if (direction[i]=="d"){
                newx=x+(vitesse[i]*temps[i]);
 
 
            newy=y-(vitesse[i]*temps[i]*5);
 
 
                g.drawLine(x,y,newx,newy);
 
                x=newx;
                y=newy;
 
 
        }
 
    }
 
}