Возможно, проблема в том, что вы не используете событие нажатия клавиши, и хотя текстовая область очищается, обычная обработка нажатия клавиши заканчивает тем, что вставляет символ новой строки.
Вместо того, чтобы перехватывать событие нажатия клавиши (которое не обязательно переносимо), я бы рекомендовал использовать DocumentFilter. Здесь есть учебник , в котором показано, как его написать. Реализуйте фильтр таким образом, чтобы при появлении «новой строки» в строке вставки или замены заменялось все содержимое документа на «».
Однако этот подход не может отличить новую строку, введенную с клавиатуры, от строки, вставленной в текстовую область.