Bonjour,

Je suis en train de coder une sorte d'éditeur de texte, proche de notepad++.
L'idée est de faire un panneau comme dans notepad++, celui de gauche avec la numérotation de ligne, d'éventuels dessins ultra basiques et la possibilité de réduire un texte compris entre 2 caractères spéciaux.

Mais je bloque sur les outils à utiliser pour faire un tel panneau.

Actuellement, j'utilise un JTextArea et à chaque ligne, j'ajoute une ligne contenant le numéro de la ligne correspondante.

Le problème est quand la zone texte dépasse le nombre de lignes affichables, il "scrolle" vers le bas (comme n'importe quel éditeur de texte) mais le JTextArea lui, ne scrolle pas. Les numéros sont affichés en dessous mais je continue de voir le numéro 1 et les numéros au delà du nombre de lignes affichées n'apparaissent pas. J'ai fait plusieurs tentatives comme changer à la main la position, cela ne marche pas.

J'ai pensé donc à une méthode de changer les numéros en fonction du numéro de la première ligne affichée (si la ligne tout en haut est la ligne 30, on change la numérotation de ligne pour qu'elle commence à 30).

Mais cette solution semble bien compliquée notamment si je veux savoir à quelle ligne se trouve un certain mot (chose que j'aimerais implémenter).

Je suis donc là pour demander quelles classes pourraient me permettre de faire ceci.
La numérotation devra également prendre en compte les masques de textes, comme notepad++ (Ecrire par exemple un "if else" dans un langage et réduire les accolades du "if", vous voyez que dans la numérotation, les nombres de lignes masquées sont eux aussi masqués).

Note : le texte (à côté du JTextArea) est un JTextPane.
Note 2 : je ne veux pas de Scrollbar au niveau de la numérotation des lignes.
Note 3 : Ca serait bien de faire d'instancier qu'un objet pour les numéros et les petits dessins (genre le "+" et les pointillés comme Notepad++).

Merci à ceux qui me répondront Même si c'est plus un problème de conception que de code pur.