Java textarea cursor/caret position

If you need to get the position of the caret (cursor) in a JTextComponent (++JTextField, JTextArea JEditorPane or JTextPane), this turns out the be easy. Just use the getCaretPosition method of these classes, as shown here:

int currentCaretPosition = textPane.getCaretPosition();

This caret position method call will return the caret position as an integer offset from the beginning of the contents of your text file (document).

For instance, if I have a JTextArea that contains the following string of characters:


and the cursor/caret is at the position immediately following the letter 'e', the call to the getCaretPosition method will return a value of 5.

Java textarea cursor/caret position - summary

You may need to know the caret position/location for a variety of reasons in your Java text components, but in my case I'm using this information to help me create an auto-complete feature in a new Java text editor I'm developing (similar to the auto-complete feature found in TextMate).