2013-07-21 47 views
1

previous question我问如何将光标设置到JTextArea的底部。答案是textField.getDocument().getLength()从技术上讲,每次插入文本后我都可以使用textField.getDocument().getLength(),但这不方便。如何更改JTextArea的默认光标位置?

但是,这并不完全是我的意思。我需要更改光标位置的JTextArea PROPERTY 。在我的程序_result是JTextArea。它从多个类和方法的文本,因此,使用textField.getDocument().getLength()每次后_result.append("text")不方便,使代码出错,并且不灵活

有什么办法,我可以这样做:

// this is just a pseudocode 
_result.setDefaultCursorPosition(bottom); 

,然后每当文本去那里(从什么类或方法没有MATTER),光标总是在底部。

回答

1

这将每个文件更改后移动插入符号到终点位置:

_result.getDocument().addDocumentListener(new DocumentListener() { 
     private void atEnd() { 
      _result.setCaretPosition(_result.getText().length()); 
     } 
     public void insertUpdate(DocumentEvent evt) { atEnd(); } 
     public void removeUpdate(DocumentEvent evt) { atEnd(); } 
     public void changedUpdate(DocumentEvent evt) { atEnd(); } 
    }); 

它还允许用户通过点击,或通过其他调用setCaretPosition重新定位插入符号。