gpt4 book ai didi

java - 强制 JScrollBar 滚动到行头

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:40 24 4
gpt4 key购买 nike

我正在处理 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com