Bonjour,

Je dessine une forme rectangulaire, dans un objet qui hérite de DefaultHighlightPainter et que j'attribue a un JTextPane. Cela sert à mettre en évidence des informations.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public Shape paintLayer(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c, View view) {
     g.drawRect(...);
}
Le JTextPane est plus grand que la JFrame et est encapsulé dans un JScrollPane.
Lorsque mon Highlight est peint, il est seulement peint sur la partie visible à l'écran du JTextPane, mais pas sur la partie caché : lorsque je scroll horizontalement, il n'y a pas de dessin, alors que cela est dessiné de manière certaine dans paintLayer().

J'ai implementé un listener sur le scroll et ainsi pu actualiser paintLayer() mais il y a un temps d'affichage beaucoup trop lent (je veux dire que cela se voit), cela n'est pas satisfaisant.

Comment se fait-il que le dessin ne se fasse que sur la partie visible ? Comment puis-je faire pour palier à cela ?
La moindre information est la bienvenue, car ... je pige pas