По умолчанию JTextArea
не будет переносить текст, поэтому вы должны вручную определить это поведение:
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
Также убедитесь, что вы правильно настраиваете JScrollPane
:
JScrollPane sp = new JScrollPane(textArea);
//JScrollPanes are just like JPanels (except for the scrollbars) so be careful not to just add the JComponent to your frame; add the container instead.
frame.add(sp);
В качестве примечания, прочитайте учебник @kleopatra, который так услужливо предложил получить хорошую основание для текстовых областей.