ОБНОВЛЕНИЕ: Я только что узнал о классе Highlighter. Я не думаю, что вам следует использовать стиль setbackground.Вместо этого используйте класс DefaultHighlighter.
Highlighter h = textPanel.getHighlighter();
h.addHighlight(1, 10, new DefaultHighlighter.DefaultHighlightPainter(
Color.red));
Первые два параметра метода addHighlight - это не что иное, как начальный и конечный индексы текста, который вы хотите выделить.Вы можете вызвать этот метод несколько раз, чтобы выделить прерывистые строки текста.
СТАРЫЙ ОТВЕТ:
Понятия не имею, почему метод setParagraphAttributes не работает.Но похоже, что это работает.
doc.insertString(0, "Hello World", textPanel.getStyle("Hightlight background"));
Может быть, вы можете пока что обойтись ...