Если вы посмотрите документацию JTextArea
public void select (int selectionStart,
int selectionEnd)
Выбирает текст между указанными начальными и конечными позициями.
Этот метод устанавливает начальную и конечную позиции выделенного текста, применяя ограничение, согласно которому начальная позиция должна быть больше или равна нулю. Конечная позиция должна быть больше или равна начальной позиции и меньше или равна длине текста текстового компонента.
Если вызывающая сторона предоставляет значения, которые являются несовместимыми или выходят за пределы, метод принудительно применяет эти ограничения без каких-либо сбоев. В частности, если начальная позиция или конечная позиция больше длины текста, она сбрасывается, чтобы равняться длине текста. Если начальная позиция меньше нуля, она сбрасывается в ноль, а если конечная позиция меньше начальной позиции, она сбрасывается в начальную позицию.
Таким образом, простое решение - jTextArea.select (Integer.MAX_VALUE, 0); и пусть Java разберется!