mon affichage graphique c tout caca, comment je peux utiliser GeneralPath
Bonjour
J'enregistre des DrawLine de couleur dans une listeShape, mais comme y en a bcp, ça peut planter...
Voila, en fait il y a bcp bcp trop de drawline je peux en avoir 10 000, et je les enregistre tous dans une <List> Shape comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11
| // 2 conditions nécessaires à l'affichage la pause et le bouton refresh juin/07
if (app.getPanneauBoutons().getIsPause() && app.getFenetreGraphe().getEtatRafraichir())
{
for(FormeColoree shape3 : listeGraphique1) {
//On dessine la forme
shape3.dessiner(g2d);
}
for(FormeColoree shape4 : listeGraphique2) {
//On dessine la forme
shape4.dessiner(g2d);
} |
Code:
1 2 3 4
|
g2d.drawLine(abcisseEnCours2-1+x, tab_coor[indiceTab2-(int)pas][i][0], abcisseEnCours2+x, tab_coor[indiceTab2][i][0]);
FormeColoree shape3 = new FormeColoree(new Line2D.Double(abcisseEnCours2-1+x, tab_coor[indiceTab2-(int)pas][i][0], abcisseEnCours2+x, tab_coor[indiceTab2][i][0]) , g2d.getColor());
listeGraphique1.add(shape3); |
La c'est la definition des elements de type FormeColorée inspirée de Sinok
Code:
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
| public class FormeColoree {
private Shape shape;
private Color color;
/**
* @param shape
* @param color
*/
public FormeColoree(Shape shape, Color color) {
this.shape = shape;
this.color = color;
}
/**
* @return color
*/
public Color getColor() {
return color;
}
/**
* @param color color à définir
*/
public void setColor(Color color) {
this.color = color;
}
/**
* @return shape
*/
public Shape getShape() {
return shape;
}
/**
* @param shape shape à définir
*/
public void setShape(Shape shape) {
this.shape = shape;
}
public void dessiner(Graphics2D g2d) {
g2d.setPaint(color);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.draw(shape);
}
public void addFormeEtCouleur(Graphics2D g2d, Shape s, Color c){
g2d.setPaint(color);
g2d.draw(shape);
} |
Si j'ai une liste trop trop importante, le pb c 'est que l'affichage graphique decede trop longtemps puis rescusite ...
et D'un penser vous que GeneralPath me fera gagner du temps en concatenant tous les DrawLine ?
et de deux Si oui comment dois je m'y prendre par rapport à ma classe "FormeColoree" ?