我正在尝试将JTextPane滚动到特定行。为此,我将我的文本窗格作为JViewport放入JScrollPane。我用以下方法确定该行的x和y坐标:
JViewport port = (JViewport)getParent();
JScrollPane pane = (JScrollPane)port.getParent();
float calculated = (float)i/(float)lines.size() * 100;
pane.getVerticalScrollBar().setMaximum(100);
pane.getVerticalScrollBar().setValue((int)calculated);
使用此代码块,我可以滚动滚动条但我无法滚动文本区域的上下文。只有滚动条移动,但显示文本似乎与以前相同。我需要显示计算的行。(顺便计算变量在0-100之间)
答案 0 :(得分:2)
查看Text Utilities课程。
您可以使用gotoStartOfLine(...)
方法将插入符号放在行的开头。这将导致文本区域在需要时滚动。
或许您可以使用centerLineInScrollPane(...)
方法。