Bonjour à tous,
Je suis entrain de réaliser un programme en java. Le but de ce programme est de lire un fichier .txt ou chaque ligne contient des nombres réels. après on affiche ces points dans une fenêtre.
Si la ligne contient 4 nombres, on construit une droite qu'on dessine jusqu'au bord de la zone de dessin.

J'ai procéder comme cela:
D'abords, dans la classe DataPoints, je lis le ficher ligne par ligne. Si le fichier contient 2 valeurs, j'instancie un point, 4 valeurs j'instancie une droite sinon je mets en exception.
Chacun des points instanciés est ajouté au vecteur ArrayList.

Dans la Classe DessinPoints: lire les points et dessine un rectangle autours de ce point avec drawrect(). et puis dessiner les droites qui doivent s'étendre jusqu'au bord de la zone de dessin.
Après, on doit pouvoir redimentionner la fenêtre.

Le problème c'est que j'ai des erreurs qui se produisent après compilation.
Aidez-moi svp. Cela fait une semaine que je me prends la tête.
Voici le code:

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
 
 
package dataPoints;
import geomD2.DroiteD2;
import geomD2.PointsD2;
 
import java.io.FileReader;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
 
public class DataPoints extends ArrayList<ArrayList<PointsD2>>{
	/**
         * 
         */
	private static final long serialVersionUID = 1L;
	double min_x, min_y, max_x, max_y;
	ArrayList <PointsD2> vectPoint;
	public DataPoints(String fichier){
		LineNumberReader lecteurLignes = null;
		try{
 
			lecteurLignes = new LineNumberReader (new FileReader(fichier));
			String ligneTexte = null;
			vectPoint = new ArrayList<PointsD2>();
			while ((ligneTexte = lecteurLignes.readLine()) != null) {
				StringTokenizer st = new StringTokenizer(ligneTexte);
 
				if (st.countTokens() == 2) {
					//stoker les points dans le vecteur courant
					Double X = new Double(st.nextToken());
					Double Y = new Double(st.nextToken());
					PointsD2 Point = new PointsD2(X,Y);
					vectPoint.add(Point);
				}
				if (st.countTokens() == 4 ) {
					Double X = new Double(st.nextToken());
					Double Y = new Double(st.nextToken());
					PointsD2 Point = new PointsD2(X,Y);
					Double X1 = new Double(st.nextToken());
					Double Y1 = new Double(st.nextToken());
 
					PointsD2 Point2 = new PointsD2(X1,Y1);
					new DroiteD2(Point,Point2);
 
 
				}
			}
			System.out.println(vectPoint);
		}
		catch(Exception e) { e.printStackTrace(); }
		min_max();
    }
	private void min_max() {
	// trouver les coordonnÈes extrÍmes {min_x}, {max_x}, {min_y},
		// {max_y} des points stockÈs dans le vecteur courant: je n'arrive pas 
 
 
	  }
}
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
 
package dataPoints;
import geomD2.DroiteD2;
import geomD2.PointsD2;
 
import java.awt.*;
import java.util.ArrayList;
 
import javax.swing.JComponent;
import javax.swing.JPanel;
 
 
 
public class DessinPoints extends JPanel {
 
 
	/**
         * 
         */
	private static final long serialVersionUID = 1L;
	DataPoints listPts;
	int bord; // taille des bords
	int enveloppe; // dimension des rectangles
 
 
	public DessinPoints (DataPoints pts, int largeur, int hauteur, int bord, int enveloppe) {
		this.listPts = pts;
		this.bord = bord;
		this.enveloppe = enveloppe;
 
	}
	public void paintcomponent (Graphics g) {
		super.paintComponent(g);
		g.setXORMode(Color.RED);
	  	Dimension tailleSuivante = new Dimension (this.getSize()); //Affectation de la nouvelle taille de la fenêtre
    	JComponent tailleOriginal = null;
		@SuppressWarnings("null")
		double factEchX = tailleSuivante.getWidth()/tailleOriginal.getWidth(); //calcule du facteur de l'échelle sur l'axe X
    	double factEchY = tailleSuivante.getHeight()/tailleOriginal.getHeight(); //calcule de facteur de l'échelle sur l'axe Y
 
    	for (int i=0;i<listPts.size();i++){
    		ArrayList<PointsD2> ptLu = (ArrayList<PointsD2>)listPts.get(i); //Liste des point courants
    		//Test si il a 1 ou 2 point pour l'affichage de ses dernier avec ou sans la droite
    		if(ptLu.size()==1){
    			//Affichage des points
    			g.drawRect((int)(ptLu.get(0).getX().intValue()*factEchX),(int)(ptLu.get(0).getY().intValue()*factEchY),enveloppe,enveloppe);
    		}
    		if(ptLu.size()==2){
    			int milieuPointX1,milieuPointY1,milieuPointX2,milieuPointY2; //Coordinées central des points pour l'affichage central de la droite
 
    			//definition du milieu des points
    			milieuPointX1 = ptLu.get(0).getX().intValue()-enveloppe/2;
    			milieuPointY1 = ptLu.get(0).getY().intValue()-enveloppe/2;
    			milieuPointX2 = ptLu.get(1).getX().intValue()-enveloppe/2;
    			milieuPointY2 = ptLu.get(1).getY().intValue()-enveloppe/2;
 
    			//Affichage des points
    			g.drawRect((int)(milieuPointX1*factEchX),(int)(milieuPointY1*factEchY),enveloppe,enveloppe);
    			g.drawRect((int)(milieuPointX2*factEchX),(int)(milieuPointY2*factEchY),enveloppe,enveloppe);
 
    			//Création de la droite
    			DroiteD2 droite = new DroiteD2 (ptLu.get(0),ptLu.get(1));
    			//Affichage de la droite
    			g.drawLine((int)(droite.getIntersectionX().intValue()*factEchX),0,0,(int)(droite.getIntersectionY().intValue()*factEchY));
    		}
    	}				
    }
 
 
 
 
 
	}
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
 
 
import javax.swing.JFrame;
 
import dataPoints.DataPoints;
import dataPoints.DessinPoints;
 
public class Grapheur {
	public static void main(String[] args) {
		DataPoints listePts = new DataPoints ("fichier.txt");
		System.out.println(listePts);
		DessinPoints monGraphe = new DessinPoints(listePts,600,400,10,10);
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.add(monGraphe, "center");
		f.setTitle("Grapheur"); 
		f.setSize(400, 400);
	    f.setVisible(true);
	}
 
}
Et les erreurs:
java.lang.NumberFormatException: For input string: "import"[]

at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
at java.lang.Double.valueOf(Double.java:475)
at java.lang.Double.<init>(Double.java:567)
at dataPoints.DataPoints.<init>(DataPoints.java:30)
at Grapheur.main(Grapheur.java:9)
Exception in thread "main" java.lang.IllegalArgumentException: cannot add to layout: unknown constraint: center
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:446)
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:407)
at javax.swing.JRootPane$1.addLayoutComponent(JRootPane.java:514)
at java.awt.Container.addImpl(Container.java:1074)
at java.awt.Container.add(Container.java:959)
at javax.swing.JFrame.addImpl(JFrame.java:540)
at java.awt.Container.add(Container.java:927)
at Grapheur.main(Grapheur.java:14)


Merci Beaucoup.