У меня есть JTextPane
с типом контента «text/html». Он интегрирован в JScrollPane
.Java - получение/установка высоты строки JTextPane с типом контента «text/html»
Пользователь может прокрутить вниз в этом JTextPane
и нажимает кнопку. В этот момент я хочу вычислить самую верхнюю реальную видимую строку JTextPane
!
То, что я нашел в другом посте здесь, где эти линии:
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;
}
Но это не правильно вычислить .. Количество в lineHeight
слишком мал. Так что, если я перечисляю на 20-й строке -для ПРИМЕР- метод возвращает более 20 ..
Я попытался установить высоту строки с помощью таблицы стилей (например, here):
StyleSheet sh = editorKit.getStyleSheet();
sh.addRule("body {line-height: 50px}");
Но Безразлично Неважно, какой номер пикселя я установил там, итоговый JTextPane
всегда имеет ту же высоту (и я использую тег body
).
Есть ли у вас какие-либо предложения?
Большое вам спасибо за помощь!
HTML-документ может иметь контент в нескольких шрифтах. Вы пытаетесь определить высоту строки шрифта элемента body? – VGR