编程语言
首页 > 编程语言> > java-强制JScrollBar滚动到行头

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