Мне нравится ответ, который предлагает использовать JTextArea, когда пользователь собирается редактировать текст, поскольку он прост. Однако, если вы хотите правдивое редактирование на месте, а также рендеринг именно вашего текстового содержимого, вы можете исследовать создание собственной реализации View для JEditorPane. Это дает вам готовую модель и контроллер для редактирования, позволяя вам предоставить презентацию, чтобы вы могли выполнять рендеринг настолько точно, насколько это необходимо. А с JEditorPane.DefaultEditorKit, доступным как источник, у вас есть много рекомендаций о том, как реализовать свой собственный View.
Это может быть излишним для ваших нужд или может дать вам необходимый уровень контроля.