nombre de lige d'un JTextPane
Bonjour, je dois mettre en place une IHM pour un compilateur, voila une image de celle-ci.
http://img57.imageshack.us/img57/2129/sanstitreij3.jpg
La partie tout à gauche est composé de 2 JTextPane, celui en blanc contient le code source à compiler, celui en gris contiendra le numero des lignes. Le problème c'est que je n'arrive pas à compter le nombre de ligne dans le JTextPane du code source (je précise que le code source est écrit à partir d'un arbre). J'ai une fonction, que j'ai trouvé sur ce forum, qui me renvoit le numéro de la ligne quand je clique dans le JTextPane, mais lorsque que j'essaye de récupérer le numéro de la ligne après l'ecriture dans le JTextPane (pour avoir le numéro de la dernière ligne) j'ai une erreur à cause de la fonction getMagicCaretPosition() qui me renvoit null.
Voilà la fonction :
Code:
1 2 3 4 5 6 7 8 9
|
public int getNumeroLigne()
{
double yCaret=this.getCaret().getMagicCaretPosition().getY();
double yStart=3.0;
int fontHeight=this.getFontMetrics(this.getFont()).getHeight();
return (int)((yCaret-yStart)/fontHeight) + 1;
} |
J'ai voulu alors compter le nombre de retour à la ligne, mais ces retours se font par System.getProperty("line.separator"). La fonction me renvoit toujours 0.
Voilà la fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public int getNombreLigne() throws BadLocationException{
int nombreCaractere = this.getDocument().getLength();
int nombreLigne = 0;
for (int i = 0; i < nombreCaractere - 1; i++){
if (this.getText(i, 1) == System.getProperty("line.separator")){
nombreLigne++;
}
}
return nombreLigne + 1;
} |
Si quelqu'un a une idée ca serait vraiment sympa de m'aider.
Merci