2013-07-21 76 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重新定位插入符號。