java-强制JScrollBar滚动到行头
作者:互联网
我正在处理JEditorPane以显示HTML文档,并且创建了一个按钮,每次单击该按钮时,该按钮都会滚动到下一个查看端口,“好像我正在翻一本书的页面”.
但是,有时我在视口的顶部看到线的一部分,那么有什么方法可以迫使JScrollBar滚动到线的前面吗?
我尝试了setBlockIncrement()成员方法,但是根本没有用.
这是我的最佳尝试:
//get the visible rectangle as well as the most bottom right point.
Rectangle rec = jEditorPane1.getVisibleRect();
Point pt = new Point((int)rec.getX() +(int)rec.getWidth(),(int)rec.getY() + (int)rec.getHeight());
// get the offset of the most bottom right point
int off = jEditorPane1.viewToModel(pt);
try {
//get next viewable rectangle and scroll to it
rec = jEditorPane1.modelToView(off+100);
rec.height = jEditorPane1.getVisibleRect().height;
jEditorPane1.scrollRectToVisible(rec);
} catch (BadLocationException ex) {
Logger.getLogger(NewJFrame2.class.getName()).log(Level.SEVERE, null, ex);
}
解决方法:
猜猜您在要显示的文档中有职位.您可以使用modelToView()方法获取位置的可见区域.并使用y位置设置视口.例如.使用scrollRectToVisible在矩形参数中传递y和视口高度.
标签:jeditorpane,jscrollbar,swing,java 来源: https://codeday.me/bug/20191101/1986175.html