我有內容類型「text/html的」一個JTextPane
。它集成在JScrollPane
中。爪哇 - 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