Bonjour,

Je vous définis rapidement le problème auquel je suis confronté :

Context
J'effectue actuellement des tests concernant l'utilisation du composant JScrollpane. Ce dernier contient un JPanel dans lequel, via l'utilisation d'un Graphic2D et java2D, je réalise différents dessins comparables à des matrices colorées.

Problème
Je rencontre un problème lorsque le jeu de donnée à représenter devient conséquent. Le temps de génération de la zone graphique comprise dans le JSrollpane devient important (Test : ~1.3 sec). Cela nuit fortement à l'intéractivité logiciel, car à chaque fois que la scroll est déplacée le graphique se raffraîchit. Or, selon mon analyse, le problème réside dans le fait que l'ensemble de la zone graphique est générée (alors que seul une partie minime est affichable lorsque l'on considère la résolution du moniteur).

De façon imagée si l'on considère que la partie visible comprise dans le JScrollPane [---] se situe entre les crochets :
...**********[---]**********...

Etude de Solution
La résolution de cette problématique, serait de faire en sorte que seule la partie visible de la zone graphique contenue dans le JSrollPane soit dessinée via la méthode paintComponent. Pour en revenir à l'image proposée ci-dessus, nul besoin de générer les zones représentées par des ***.

Pour cela j'entrevois la possibilité d'effectuer la corrélation entre les paramètres du JScrollPane permettant de définir la zone affichée (bornes de la scroll) et mon algorithme d'affichage contenu dans la méthode PaintComponent.
Ainsi seule une partie de mes structures de données seraient représentées graphiquement.

Je me souviens avoir implémenté ce procédé en SWT, mais dans ce cas je pense inclure un Zoom et je redoute que l'évolutivité du code soit mise à mal si j'utilise cette méthode, cependant je n'ai aucune autre solution.

Je souhaiterais donc avoir votre avis, car je suis persuadé que ce problème doit classiquement être rencontré en programmation graphique.

En espérant avoir été le plus clair possible et en vous souhaitant une très agréable fin de semaine, je vous remercie d'avance.