Bonjour à tous,
d'abords, je m'excuse pour ce long code.
En fait, je suis débutante en java et j'aimerais réaliser un programme qui lit un fichier .txt ou chaque ligne contient 2 ou 4 nombre réels et puis il affiche dans une fenêtre un point quand la ligne contient 2 nombres et une droite quand elle contient 4 nombres. Mais quand je compile, eclipse m'affiche cette erreur:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The constructor DroiteD2(PointsD2, PointsD2) is undefined
at dataPoints.DataPoints.<init>(DataPoints.java:38)
at dataPoints.Grapheur.main(Grapheur.java:6)
voici les classes:
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 package dataPoints; import java.awt.*; import java.awt.Graphics; import javax.swing.JPanel; public class DessinPoints extends JPanel { 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.blue); } }
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 package dataPoints; import geomD2.DroiteD2; import geomD2.PointsD2; import java.io.FileReader; import java.io.LineNumberReader; import java.util.StringTokenizer; import java.util.Vector; public class DataPoints extends Vector<Vector<PointsD2>>{ double min_x, min_y, max_x, max_y; Vector <PointsD2> vectPoint; public DataPoints(String fichier){ LineNumberReader lecteurLignes = null; try{ lecteurLignes = new LineNumberReader (new FileReader(fichier)); String ligneTexte = null; vectPoint = new Vector<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); DroiteD2 Droite = new DroiteD2(Point,Point2); } } System.out.println(vectPoint); } catch(Exception e) { e.printStackTrace(); } min_max(); } private void min_max() { // completer } }
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 import javax.swing.JFrame; 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); } }
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 public class DroiteD2 { private PointsD2 point = null; private double pente = 0.0; private double b = 0.0; // la droite "pente x + b" // Constructeurs // un point et une pente public DroiteD2(PointsD2 p, Double m) { //revenir sous la forme de la pente ax + b point = p; calculerTout(m, p); } // une pente et une ordonnee d'origine public DroiteD2(Double m, Double ord) { pente = m; b = (double)ord; point = new PointsD2(0.0,ord); } // deux points public DroiteD2(PointsD2 p1, PointsD2 p2) { point = p1; calculerTout(p1, p2); } // mthodes internes pour calculer pente/B selon param�tres private void calculerTout(PointsD2 p1, PointsD2 p2) { //utiliser en interne pour calculer B if (p1.getX() >= p2.getX()) { pente = ((double)p1.getY() - p2.getY())/(p1.getX() - p2.getX()); } else { pente = ((double)p2.getY() - p1.getY())/(p2.getX() - p1.getX()); } calculerB(p1); } private void calculerTout(Double m, PointsD2 p){ pente = m; calculerB(p); } private void calculerB(PointsD2 p){ if (p.getX() >= 0) { b = p.getY() - pente*p.getX(); } else { b = -(pente*p.getX()) - p.getY(); } System.out.println(pente + "x + " + b); } // modificateurs public void setPoint(PointsD2 p) { point = p; calculerTout(pente, point); } // changer la pente public void setPente(Double m) { pente = m; //calculerTout(pente, point); } // changer tout public void setPointPente(PointsD2 p, Double m) { point = p; pente = m; calculerTout(m,p); } // les accesseurs purs // obtenir le point public PointsD2 getPoint() { return point; } // obtenir la pente public Double getPente() { return pente; } // les accesseurs avec calcul // abscisse d'intersection avec axe X public Double getIntersectionX() { return -(b/pente); } // ordonne d'intersection avec axe Y public Double getIntersectionY() { return b; } public boolean contient(PointsD2 p) { return (pente*p.getX() + b == p.getY()); } public boolean estParallele(DroiteD2 d) { return d.pente == pente; } // Les utilitaires public boolean equals(Object o){ if (!(o instanceof DroiteD2)) { return false; } else return ((((DroiteD2)o).pente == this.pente) && (((DroiteD2)o).b == this.b)); //return true; //(((DroiteD2)o).point.getX() == this.point.getX() } public String toString() { return ("pente= " + pente + " b= " + b); } public StringBuilder toString2() { return new StringBuilder("pente= " + pente + " b= " + b); } }Merci beaucoup
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 package geomD2; public class PointsD2 { private Double x = (Double) null; private Double y = (Double) null; // Point D2 a ses constructeurs public PointsD2() {}; public PointsD2(Double a, Double b) { x = a; //conversion implicite de int en Integer y = b; } public PointsD2(PointsD2 pt){ x = pt.x; y = pt.y; } public PointsD2(Double[] pt){ x = pt[0]; y = pt[1]; } // PointD2 m≈Ωthodes d'instance public boolean defini() { return (x != null) && (y != null); } public Double getX(){ return x; } public Double getY(){ return y; } public void setX(Double a){ x = a; } public void setY(Double a){ y = a; } public double dist(PointsD2 pt){ //distance ÀÜ un point entr≈Ω en paramÔøΩtre (pythagore) return Math.sqrt(Math.pow(pt.x-x,2) + Math.pow(pt.y-y,2)); } // red≈Ωfinition de la m≈Ωthode Object.equal() public boolean equals(Object p){ if (!(p instanceof PointsD2)) { return false; } else return (((PointsD2)p).x == x && ((PointsD2)p).y == y); } }
Partager