作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在处理 JEditorPane
以显示 HTML 文档,我创建了一个按钮,每次单击它时都会将我滚动到下一个视口(viewport),“就像我翻书一样”。
但是,有时我会在视口(viewport)的顶部看到一行的一部分,那么有没有办法强制 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 位置设置视口(viewport)。例如。使用 scrollRectToVisible 在矩形参数中传递 y 和视口(viewport)高度。
关于java - 强制 JScrollBar 滚动到行头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8981965/
我是一名优秀的程序员,十分优秀!