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 :
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 /** * 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 lutilisateur 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 jai appelé shapes1 vs verrez plus loin */ } for(Shape shape2 : this.getShapes2()) { //On dessine la forme g2d.draw(shape2); /*idem*/ } }
Comment puis je transmettre la couleur de mes lignes à mes shapes !! :S
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]));
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!
Partager