Bonjour,

Je rencontre des problèmes de performances d'affichage assez sensibles, dans une IHM que je développe et qui représente un graphe des données d'un SGBD Oracle, à l'aide de JFreeChart.

D'une manière générale, cette IHM permet à l'utilisateur d'afficher un graphe JFreeChart (calculé en amont) en fonction de son choix dans un TreeViewer.

J'utilise le service de Selection et le design pattern "Adapter" pour passer les infos de mon TreeViewer vers la Frame qui affiche le ChartPanel du JFreeChart.

Pour afficher la graphe, je fais comme cela:
dans le createPartControl de la view :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
...
protected Frame mFrame;
mFrame = SWT_AWT.new_Frame(compositeChart);
mFrame.setLayout(new BorderLayout());
...
Dans la méthode selectionChanged(IWorkbenchPart part, ISelection selection)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
....
        mFrame.removeAll();
          if (lcp != null) {
            mFrame.add(lcp);
            mFrame.setVisible(true);
        }
        mFrame.repaint();
...
où lcp est de type ChartPanel.

Il y a donc un freeze assez long (jusqu'à 0.5sec) après le clic dans le TreeViewer. Le déplacement de la souris est alors saccadé et l'IHM n'est alors pas très "fluide", ce qui est rédhibitoire.

Mes tests ont montré que ce freeze vient de la ligne J'ai effectué quelques recherches sur le net, en vain.
Je ne vois pas d'où peut venir ce ralentisseemet (PC?, SWT?, ..)

Etant novice sous Eclipse/AWT/SWT/Jfreechart, j'en appelle aux expérimentés du forum : auriez-vous des suggestions pour réduire ce freeze ?

Merci d'avance.