J'ai un JTextPane
avec le type de contenu "text/html". Il est intégré dans un JScrollPane
.Java - obtention/définition de la hauteur de ligne de JTextPane avec le type de contenu "text/html"
L'utilisateur peut faire défiler vers le bas dans ce JTextPane
et appuie sur un bouton. A ce moment je veux calculer la ligne visible la plus haute du JTextPane
!
Ce que je trouve dans un autre post ici où ces lignes:
public Integer getActualDisplayedRows() {
int y1 = jtextpane.getVisibleRect().y;
int lineHeight = jtextpane.getFontMetrics(jtextpane.getFont()).getHeight();
int topMostRow = (int) Math.ceil((double) y1/lineHeight);
return topMostRow;
}
Mais cela ne calcule pas correct .. Le nombre lineHeight
est trop petit. Donc, si je fais défiler la ligne 20 -pour exemple- la méthode retourne plus de 20 ..
J'ai essayé de régler la hauteur de la ligne par feuille de style (comme here):
StyleSheet sh = editorKit.getStyleSheet();
sh.addRule("body {line-height: 50px}");
Mais doesn Quel que soit le nombre de pixels que j'ai mis là, le résultat JTextPane
a toujours la même hauteur (et j'utilise le body
tag) ..
Avez-vous des suggestions ??
Merci beaucoup pour votre aide!
Un document HTML peut avoir du contenu dans plusieurs polices. Essayez-vous de déterminer la hauteur de ligne de la police de l'élément body? – VGR