public void setUpdatePolicy(int policy)
-
设置文档更新时的插入符移动策略。通常,当在插入符位置之前或当前位置插入时,以及在插入符位置之前删除时,插入符会更新其在文档中的绝对位置。这里的“绝对位置”指的是相对于文档开头的位置。例如,在一个可编辑的文本组件中输入一个字符时,它将插入到插入符位置,而插入符由于此插入将移动到文档中下一个绝对位置,如果输入的是
BACKSPACE
,插入符的绝对位置将减小,因为在它之前删除了一个字符。有时候,关闭插入符位置更新很有用,这样无论文档怎么更新,插入符都将保持在文档中同一绝对位置。允许以下更新策略:
NEVER_UPDATE
:无论文档怎样更新,插入符在文档中都位于同一绝对位置,除非由于删除使文档长度小于当前插入符位置。这种情况下,插入符位置将被调整到文档的结尾。使用此策略时,插入符不会试图在滚动关联的视图时保持可见。ALWAYS_UPDATE
:插入符始终跟踪文档更改。对于一般的更改,如果在插入符位置之前或当前位置插入,则增加它的位置,如果在当前位置之前删除,则减小它的位置。对于撤消/恢复更新,它总是移动到更新发生的位置。插入符总是试图通过调用adjustVisibility
方法保持可见。UPDATE_WHEN_ON_EDT
:如果文档更新在事件调度线程上执行,则与ALWAYS_UPDATE
动作类似;如果文档更新在其它线程上执行,则与NEVER_UPDATE
类似。
默认属性值为
UPDATE_WHEN_ON_EDT
。 -
-
-
参数:
-
policy
- 它是以下值之一:UPDATE_WHEN_ON_EDT
、NEVER_UPDATE
、ALWAYS_UPDATE
Java代码
-
-
JTextArea textArea = new JTextArea(); DefaultCaret caret = (DefaultCaret)textArea.getCaret();// 获取允许在视图上进行面向文本导航的插入符 caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);