JFreeChart mettre un image comme type de point [Résolu]

cs_xxLoloxx
Messages postés
9
Date d'inscription
dimanche 3 février 2008
Dernière intervention
10 juillet 2012
- 3 oct. 2011 à 10:30 - Dernière réponse : cs_xxLoloxx
Messages postés
9
Date d'inscription
dimanche 3 février 2008
Dernière intervention
10 juillet 2012
- 4 oct. 2011 à 10:34
Bonjour à toutes et tous,

Voilà un petit bout de temps que je suis membre de ce site qui m'aide à résoudre mes problèmes. Habituellement, j'arrivais à les résoudre en cherchant dans les sujets existants voir dans les morceaux de codes développés par les membres mais aujourd'hui ce n'est pas le cas hélas.

Je suis actuellement en train de développer une application où j'aimerais arriver à obtenir une barre de suivi comme sur le site suivant (http://www.sports.fr/football/directs/2012/ligue-1/138591/evian-thonon-caen.html). A savoir avoir une barre et des icones sur celle ci afin de représenter des événements qui y seront survenus.

Jusqu'à maintenant j'obtiens ceci:


Il ne me manquerait plus qu'à transformer les points bleus, rouges, verts par des images de mon choix.
Je ne trouve rien sur le net pour m'aider dans cette tâche. Est ce tout simplement possible ?

Je vous remercie par avance.
Bonne journée
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Utilisateur anonyme - 3 oct. 2011 à 14:48
3
Merci
Bonjour

Essayez de surcharger la méthode XYLineAndShapeRenderer.drawSecondaryPass() pour faire ça. Vous devriez poser votre question sur le forum de JFreeChart, vous auriez plus de chances d'avoir des réponses. Cordialement








T.U.E.R (First Person Shooter créé par Julien Gouesse)

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
cs_xxLoloxx
Messages postés
9
Date d'inscription
dimanche 3 février 2008
Dernière intervention
10 juillet 2012
- 4 oct. 2011 à 09:14
0
Merci
Merci Gouessej ;)

Je n'ai pas eu besoin d'aller sur leur forum car tu m'as donné la réponse que je souhaitais.
Tout marche très bien !

Pour ceux qui souhaiterais avoir la réponse, je poste le code. Il n'est pas commenté mais reste assez implicite. J'ai défini cette méthode dans une classe CustomXYLineAndShapeRenderer qui hérite de XYLineAndShapeRenderer :

protected void drawSecondaryPass(Graphics2D g2, XYPlot plot,
XYDataset dataset, int pass, int series, int item,
ValueAxis domainAxis, Rectangle2D dataArea, ValueAxis rangeAxis,
CrosshairState crosshairState, EntityCollection entities) {

double x1 = dataset.getXValue(series, item);
double y1 = dataset.getYValue(series, item);
if (Double.isNaN(y1) || Double.isNaN(x1)) {
return;
}

RectangleEdge xAxisLocation = plot.getDomainAxisEdge();
RectangleEdge yAxisLocation = plot.getRangeAxisEdge();
double transX1 = domainAxis.valueToJava2D(x1, dataArea, xAxisLocation);
double transY1 = rangeAxis.valueToJava2D(y1, dataArea, yAxisLocation);
Image image = null;
String imgStr;
if (series == ModeleGraphiqueStatic.SERIE_ARRET_TACHE)
imgStr = Variable.IMG_GRAPHIQUE_BARRE_CARTON_ROUGE;
else if (series == ModeleGraphiqueStatic.SERIE_REDEMERAGE_CHRONOS)
imgStr = Variable.IMG_GRAPHIQUE_BARRE_REMPLACEMENT;
else if (series == ModeleGraphiqueStatic.SERIE_SAUT_CHRONOS)
imgStr = Variable.IMG_GRAPHIQUE_BARRE_CARTON_JAUNE;
else
imgStr = Variable.IMG_GRAPHIQUE_BARRE_SIFFLET;

try {
image = ImageIO.read((getClass().getResource(imgStr)));
} catch (IOException e) {
e.printStackTrace();
}

g2.drawImage(image, (int)transY1, (int)transX1-6, null);
}
Commenter la réponse de cs_xxLoloxx
Utilisateur anonyme - 4 oct. 2011 à 10:20
0
Merci
Bonjour

Je suis content d'avoir pu vous aider et je vous remercie d'avoir posté un exemple de code illustrant ma suggestion. Il pourrait être amélioré de sorte que l'image soit redimensionnée pour rentrer pile dans l'aire rectangulaire et il serait préférable de tester si la variable "image" est à null (si le chargement de l'image a échoué).










T.U.E.R (First Person Shooter créé par Julien Gouesse)
Commenter la réponse de Utilisateur anonyme
cs_xxLoloxx
Messages postés
9
Date d'inscription
dimanche 3 février 2008
Dernière intervention
10 juillet 2012
- 4 oct. 2011 à 10:34
0
Merci
Bonjour,

Je suis tout à fait d'accord sur vos remarques.
Le code posté ici reste à titre indicatif
Commenter la réponse de cs_xxLoloxx

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.