Bonjour,

J’ai crée une classe Graphe qui dérive de JPanel, dans laquelle j’utilise des DrawLine, et aussi une List <Shape> afin d’enregistrer la forme.

Dans cette JPanel j’ai defini paintComponent
voici sa definition :
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
 
/**
         * Dessin des axes et des graduations 
         */
	public void paintComponent(Graphics g) {
    	super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
	// les graduations
	g2d.drawLine(x+720, y+8, x+720, y);	
this.afficherAllPoints(g);
if (app.getPanneauBoutons().getIsPause()) 
/*SI l’utilisateur a declenché la pause on affiche une forme qui est une
copie du graphe tracé*/
			{	
	for(Shape shape1  :  this.getShapes1()) {
	        //On dessine la forme
	        g2d.draw(shape1); /* comme ça je dessine chaque petit bout de ligne qui compose ma <List> Shape que j’ai appelé shapes1 vs verrez plus loin */
	    		}
	  for(Shape shape2  :  this.getShapes2()) {
	        //On dessine la forme
	        g2d.draw(shape2); /*idem*/
	    		}
			}
Dans cette JPanel je trace un graphe grâce à une fonction qui ulise Drawline & juste après, j’enregistre la forme !
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
 
public void afficherPoint() {
Graphics g = this.getGraphics();
Graphics2D g2d = (Graphics2D) g;
boolean afficher = true;    // Si le point est à afficher (cela dépend de l'échelle)
 
 
 
if (i==1 && app.getModele()!=PanneauCuves.MODELE_1_CUVE_DECHRO){
						g2d.setColor(Color.blue);
ok = true;
}
 
if(ok){
/*INITIALEMENT tracage de ligne*/g2d.drawLine(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i][0], abcisseEnCours+x, tab_coor[indiceTab][i][0]);
 
/*je veux un enregsitemnt de la forme ligne*/shapes1.add(new Line2D.Double(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i][0], abcisseEnCours+x, tab_coor[indiceTab][i][0]));
}
 
}
… suite 
// pour chaque cuve doseuse b 
else if (i == 4 && nbr_cuve_selectionnee==1 && !app.getPanneauBoutons().getIsManu() && tab_coor[indiceTab2-(int)pas][i][c]!=-1) { 
							g2d.setColor(Color.BLUE); 
	if (abcisseEnCours%10 < 5)
	g2d.setColor(Color.white);
	ok = true;
}
// Courbe du ph objectif
else if (i == 5) {
								g2d.setColor(getCouleur(c+2)); /*couleur à mes lignes*/
	if (abcisseEnCours%16 < 3)
	g2d.setColor(Color.white);
	ok=true;
}
 
if(ok){
/*INITIALEMENT*/	g2d.drawLine(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i][c], abcisseEnCours+x, tab_coor[indiceTab][i][c]);
 
/*ajout des bout de shape*/						
shapes2.add(new Line2D.Double(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i][c], abcisseEnCours+x, tab_coor[indiceTab][i][c]));
Comment puis je transmettre la couleur de mes lignes à mes shapes !! :S
Peut on effacer partiellement un morceau d’une <List> shape ? (des fois si mon graphe prend trop d’abscisse à l’horizontal , j’en efface les premiers morceaux )

Merci de votre aide , c’est la premiere fois que j’utilise des shapes!