bonjour,
a partir de ce 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package demo;
import javax.swing.*;
import fr.lri.swingstates.sm.*;
import java.awt.geom.Point2D;
public class Demo {
    Canvas canvas;
    // CStateMachine smPolyLine;
 
    public Demo() {
 
        JFrame f = new JFrame("Demo");
        canvas = new Canvas(300, 300);
        f.setSize(300, 300);
        f.getContentPane().add(canvas);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
 
        CStateMachine smPolyLine = new CStateMachine(canvas) {
            CPolyLine ink;
            CSegment seg;
            Point2D P0,P1,P2;
            public State start = new State("start") {
                Transition create = new Press(BUTTON1, ">> hysterisis") {
                    public void action() {
                        P0  = getPoint();
                        seg = canvas.newSegment(P0,P0);  }
                };
            };
 
            public State hysterisis = new State("hysterisis") {
 
                Transition drag = new Drag(BUTTON1, ">> draw") {
                    public boolean guard(){
                        P1=getPoint();
                        double dx =P1.getX() -P0.getX();
                        double dy =P1.getY() -P0.getY();
                        double distSquare = dx*dx + dy*dy;
                        if(distSquare<400) return false;
                        else return true;
                    }
                    public void action() {
                        seg.setPoints(P1, getPoint());
                        seg = canvas.newSegment(P0,P1);
 
                    }
                };
                Transition release = new Release(BUTTON1, ">> start") {
                };
 
            };
 
            public State draw = new State("draw") {
                Transition drag = new Drag(BUTTON1,">> draw") {
                    public void action() {
 
                        seg.setPoints(P1, getPoint());
 
                    }
                };
                Transition release = new Release(BUTTON1, ">> start") {
                    public void action() {
                        // seg.setPoints(P1, getPoint());
                    }
                };
            };
 
 
 
        };
 
 
    }
 
    public static void main(String[] args) {
        new Demo();
    }
}
je veux que dans l'execution quand je dessine une ligne et j'enleve ma main de la souris, il me donne la main de dessiner un autre segment de tel sorte que mon dessin comporte un trait continu ou un ensemble de segments attachés.
merci de m'aider