6


,我使用带有 HTMLEditorKit 的 JEditorPane 来显示具有换行能力的 HTML 文本。
问题是当我使用 .setText 方法设置它的内容时,它会自动滚动到该文本的末尾。
我怎样才能禁用它?

谢谢。

4

3 回答 3

5

您可以尝试使用此技巧在 之前保存光标位置setText(),然后在将文本添加到组件后恢复它:

int caretPosition = yourComponent.getCaretPosition();
yourComponent.setText(" your long text  ");
yourComponent.setCaretPosition(Math.min(caretPosition, text.length()));
于 2011-03-18T10:42:42.597 回答
4

试试这个:

final DefaultCaret caret = (DefaultCaret) yourEditorPane.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
//!!!!text must be set AFTER update policy has been set!!!!!
yourEditorPane.setText(text);
于 2013-02-20T13:02:11.693 回答
1

之后试试这个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);
}
于 2011-03-18T10:47:04.380 回答