Bonjour,
J'ai un petit probleme de rafraichissement de mon graphe(Jfreechart).
J'ai une vue contenant un Treeviewer et lorsque je clique sur un item, une autre vue qui ecoutait affiche des informations sur cette item. L'une de ces info est l'affichage d'un histogramme. Le probleme c'est que losrque je clique sur un item, les info changent mais pas le graph
Voila le probleme.
Voila le code. ( provenant de la vue qui ecoute)
J'ai essayé des redraw() et repaint() en meme temps sur tous les composants de la hiérarchie mais rien n'y fait ce graphique ne veut pas se fraichir.
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 //données membres : private CategoryDataset dataSet = null; private JFreeChart chart = null; private java.awt.Frame chartFrame = null; private Composite swtAwtComponent = null; private ChartPanel cp = null; public void selectionChanged(IWorkbenchPart part, ISelection selection) { if (selection instanceof IStructuredSelection) { fillView(); } } private void fillView() { //qq modif updateChart(); } private void updateChart(){ chartFrame.remove(cp); //chartFrame.repaint(); System.out.println(getItemSelcted()); // creer mon dataset dataSet = app.createAttributeDataset(app.getAttributeDistribution(getItemSelcted())); //creer le graph chart = app.createChart(dataSet,getItemSelcted()); cp = new ChartPanel(chart); cp.repaint(); chartFrame.add(cp); chartFram.redraw(); } ///creation du graph qui marche bien ! swtAwtComponent = new Composite(distributionComposite, SWT.EMBEDDED); swtAwtComponent.setLayoutData(gridData2); // gridData tout a fait classique chartFrame = SWT_AWT.new_Frame(swtAwtComponent); dataSet = app.createAttributeDataset(app.getAttributeDistribution(getItemSelcted())); chart = app.createChart(dataSet,getItemSelcted()); cp = new ChartPanel(chart); chartFrame.add(cp);
J'ai pensé que je devais peut etre associer mon graphique a un listner ?
Quelqu'un saurait comment faire ?
Partager