嗨
,我使用带有 HTMLEditorKit 的 JEditorPane 来显示具有换行能力的 HTML 文本。
问题是当我使用 .setText 方法设置它的内容时,它会自动滚动到该文本的末尾。
我怎样才能禁用它?
谢谢。
嗨
,我使用带有 HTMLEditorKit 的 JEditorPane 来显示具有换行能力的 HTML 文本。
问题是当我使用 .setText 方法设置它的内容时,它会自动滚动到该文本的末尾。
我怎样才能禁用它?
谢谢。
您可以尝试使用此技巧在 之前保存光标位置setText()
,然后在将文本添加到组件后恢复它:
int caretPosition = yourComponent.getCaretPosition();
yourComponent.setText(" your long text ");
yourComponent.setCaretPosition(Math.min(caretPosition, text.length()));
试试这个:
final DefaultCaret caret = (DefaultCaret) yourEditorPane.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
//!!!!text must be set AFTER update policy has been set!!!!!
yourEditorPane.setText(text);
之后试试这个setText
:
Rectangle r = modelToView(0); //scroll to position 0, i.e. top
if (r != null) {
Rectangle vis = getVisibleRect(); //to get the actual height
r.height = vis.height;
scrollRectToVisible(r);
}